summaryrefslogtreecommitdiffstats
path: root/toolkit/test/accessibility/TextUpdateListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/test/accessibility/TextUpdateListener.java')
-rw-r--r--toolkit/test/accessibility/TextUpdateListener.java170
1 files changed, 0 insertions, 170 deletions
diff --git a/toolkit/test/accessibility/TextUpdateListener.java b/toolkit/test/accessibility/TextUpdateListener.java
deleted file mode 100644
index 02a0e7f0b16e..000000000000
--- a/toolkit/test/accessibility/TextUpdateListener.java
+++ /dev/null
@@ -1,170 +0,0 @@
-import drafts.com.sun.star.accessibility.*;
-import com.sun.star.uno.UnoRuntime;
-
-import javax.swing.tree.*;
-import javax.swing.event.*;
-
-
-
-/** listen to tree model changes in order to update XAccessibleText objects
-*/
-class TextUpdateListener implements TreeModelListener
-{
- public void treeNodesChanged(TreeModelEvent e)
- {
- try {
- // if the change is to the first child of a DefaultMutableTreeNode
- // with an XAccessibleText child, then we call updateText
- int[] aIndices = e.getChildIndices();
- if( (aIndices != null) &&
- (aIndices.length > 0) )
- {
- // we have a parent... lets check for XAccessibleText then
- DefaultMutableTreeNode aParent = (DefaultMutableTreeNode)
- (e.getTreePath().getLastPathComponent());
- DefaultMutableTreeNode aNode = (DefaultMutableTreeNode)
- (aParent.getChildAt(aIndices[0]));
- if( aParent.getUserObject() instanceof XAccessibleText)
- {
- // aha! we have an xText. So we can now check for
- // the various cases we support
- XAccessibleText xText =
- (XAccessibleText)aParent.getUserObject();
-
- if( aIndices[0] == 0 )
- {
- // first child! Then we call updateText
- updateText( xText, aNode.toString() );
- }
- else
- {
- // JDK 1.4:
- // // check for pattern "Selection:"
- // Matcher m = Pattern.compile(
- // "selection: \\[(-?[0-9]+),(-?[0-9]+)\\] \".*" ).
- // matcher( aNode.toString() );
- // if( m.matches() )
- // {
- // try
- // {
- // // aha! Selection:
- // setSelection( xText,
- // Integer.parseInt(m.group(1)),
- // Integer.parseInt(m.group(2)) );
- // }
- // catch( NumberFormatException f )
- // {
- // // ignore
- // }
- // }
- }
- }
- }
- }
- catch (com.sun.star.lang.IndexOutOfBoundsException aException)
- {}
- }
-
- // don't care:
- public void treeNodesInserted(TreeModelEvent e) { ; }
- public void treeNodesRemoved(TreeModelEvent e) { ; }
- public void treeStructureChanged(TreeModelEvent e) { ; }
-
- /** update the text */
- boolean updateText( XAccessibleText xText, String sNew )
- throws com.sun.star.lang.IndexOutOfBoundsException
- {
- // is this text editable? if not, fudge you and return
- XAccessibleEditableText xEdit =
- (XAccessibleEditableText) UnoRuntime.queryInterface (
- XAccessibleEditableText.class, xText);
- if (xEdit == null)
- return false;
-
- String sOld = xText.getText();
-
- // false alarm? Early out if no change was done!
- if( sOld.equals( sNew ) )
- return false;
-
- // get the minimum length of both strings
- int nMinLength = sOld.length();
- if( sNew.length() < nMinLength )
- nMinLength = sNew.length();
-
- // count equal characters from front and end
- int nFront = 0;
- while( (nFront < nMinLength) &&
- (sNew.charAt(nFront) == sOld.charAt(nFront)) )
- nFront++;
- int nBack = 0;
- while( (nBack < nMinLength) &&
- ( sNew.charAt(sNew.length()-nBack-1) ==
- sOld.charAt(sOld.length()-nBack-1) ) )
- nBack++;
- if( nFront + nBack > nMinLength )
- nBack = nMinLength - nFront;
-
- // so... the first nFront and the last nBack characters
- // are the same. Change the others!
- String sDel = sOld.substring( nFront, sOld.length() - nBack );
- String sIns = sNew.substring( nFront, sNew.length() - nBack );
-
- System.out.println("edit text: " +
- sOld.substring(0, nFront) +
- " [ " + sDel + " -> " + sIns + " ] " +
- sOld.substring(sOld.length() - nBack) );
-
- boolean bRet = false;
- try
- {
- // edit the text, and use
- // (set|insert|delete|replace)Text as needed
- if( nFront+nBack == 0 )
- bRet = xEdit.setText( sIns );
- else if( sDel.length() == 0 )
- bRet = xEdit.insertText( sIns, nFront );
- else if( sIns.length() == 0 )
- bRet = xEdit.deleteText( nFront, sOld.length()-nBack );
- else
- bRet = xEdit.replaceText(nFront, sOld.length()-nBack,sIns);
- }
- catch( IndexOutOfBoundsException e )
- {
- bRet = false;
- }
-
- return bRet;
- }
-
- boolean setSelection( XAccessibleText xText, int p1, int p2 )
- {
- try
- {
- return xText.setSelection( p1, p2 );
- }
- catch( com.sun.star.lang.IndexOutOfBoundsException f )
- {
- return false;
- }
- }
-
- // /** replace the given node with a new xText node */
- // void updateNode( XAccessibleText xText,
- // DefaultMutableTreeNode aNode )
- // {
- // // create a new node
- // DefaultMutableTreeNode aNew = newTextTreeNode( xText );
- //
- // // get parent (must be DefaultMutableTreeNode)
- // DefaultMutableTreeNode aParent =
- // (DefaultMutableTreeNode)aNode.getParent();
- // if( aParent != null )
- // {
- // // remove old sub-tree, and insert new one
- // int nIndex = aParent.getIndex( aNode );
- // aParent.remove( nIndex );
- // aParent.insert( aNew, nIndex );
- // }
- // }
-}