summaryrefslogtreecommitdiff
path: root/toolkit/test/accessibility/AccessibilityTree.java
diff options
context:
space:
mode:
authorAndre Fischer <af@openoffice.org>2003-03-13 16:14:28 +0000
committerAndre Fischer <af@openoffice.org>2003-03-13 16:14:28 +0000
commit556fa073dd173e663474fb02c93bbd50abcc25ae (patch)
treee2fdc9457fc7e4633fb23be7d5598a3f0f3161e9 /toolkit/test/accessibility/AccessibilityTree.java
parent0a20d897ff8a2374f5015061c7219063eb5cd947 (diff)
Major restructuring.
Diffstat (limited to 'toolkit/test/accessibility/AccessibilityTree.java')
-rwxr-xr-xtoolkit/test/accessibility/AccessibilityTree.java215
1 files changed, 13 insertions, 202 deletions
diff --git a/toolkit/test/accessibility/AccessibilityTree.java b/toolkit/test/accessibility/AccessibilityTree.java
index 518a039483fc..7af9c6f024da 100755
--- a/toolkit/test/accessibility/AccessibilityTree.java
+++ b/toolkit/test/accessibility/AccessibilityTree.java
@@ -1,19 +1,4 @@
-import drafts.com.sun.star.accessibility.XAccessible;
-import drafts.com.sun.star.accessibility.XAccessibleContext;
-import drafts.com.sun.star.accessibility.XAccessibleComponent;
-import drafts.com.sun.star.accessibility.XAccessibleExtendedComponent;
-import drafts.com.sun.star.accessibility.XAccessibleAction;
-import drafts.com.sun.star.accessibility.XAccessibleImage;
-import drafts.com.sun.star.accessibility.XAccessibleRelationSet;
-import drafts.com.sun.star.accessibility.XAccessibleStateSet;
-import drafts.com.sun.star.accessibility.XAccessibleText;
-import drafts.com.sun.star.accessibility.XAccessibleEditableText;
-import drafts.com.sun.star.accessibility.AccessibleTextType;
-import drafts.com.sun.star.accessibility.XAccessibleEventListener;
-import drafts.com.sun.star.accessibility.XAccessibleEventBroadcaster;
-import drafts.com.sun.star.accessibility.AccessibleEventObject;
-import drafts.com.sun.star.accessibility.AccessibleEventId;
-
+import drafts.com.sun.star.accessibility.*;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lang.IndexOutOfBoundsException;
import com.sun.star.uno.UnoRuntime;
@@ -25,10 +10,6 @@ import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
-// JDK 1.4.
-// import java.util.regex.Pattern;
-// import java.util.regex.Matcher;
-
/** This class is a start to collect the handling of a JTree and a DefaultTreeModel.
@@ -41,18 +22,11 @@ public class AccessibilityTree
for displaying messages and the specified canvas to draw the
graphical representations of accessible objects on.
*/
- public AccessibilityTree (
- MessageInterface aMessageDisplay,
- Print aPrinter)
+ public AccessibilityTree ()
{
- maMessageDisplay = aMessageDisplay;
- maPrinter = aPrinter;
-
AccessibilityTreeModel aModel =
new AccessibilityTreeModel (
- new StringNode ("Please press Update button", null),
- aMessageDisplay,
- aPrinter);
+ new StringNode ("Please press Update button", null));
setModel (aModel);
maCellRenderer = new AccessibleTreeCellRenderer();
@@ -77,7 +51,6 @@ public class AccessibilityTree
if (mnExpandLevel == 0)
{
setCursor (new Cursor (Cursor.WAIT_CURSOR));
- message ("expanding node ");
}
mnExpandLevel += 1;
}
@@ -85,7 +58,6 @@ public class AccessibilityTree
{
if (mnExpandLevel == 0)
{
- message ("collapsing node ");
setCursor (new Cursor (Cursor.WAIT_CURSOR));
}
mnExpandLevel += 1;
@@ -95,7 +67,6 @@ public class AccessibilityTree
mnExpandLevel -= 1;
if (mnExpandLevel == 0)
{
- message ("");
setCursor (new Cursor (Cursor.DEFAULT_CURSOR));
}
}
@@ -104,7 +75,6 @@ public class AccessibilityTree
mnExpandLevel -= 1;
if (mnExpandLevel == 0)
{
- message ("");
setCursor (new Cursor (Cursor.DEFAULT_CURSOR));
}
}
@@ -152,7 +122,6 @@ public class AccessibilityTree
{
if (mnExpandLevel == 0)
{
- message ("Expanding tree");
setEnabled (false);
}
mnExpandLevel += 1;
@@ -173,7 +142,6 @@ public class AccessibilityTree
{
setEnabled (true);
((AccessibilityTreeModel)getModel()).unlock (aNode);
- message ("");
}
}
@@ -246,17 +214,21 @@ public class AccessibilityTree
- protected void message (String message)
- {
- maMessageDisplay.message (message);
- }
-
public void disposing (com.sun.star.lang.EventObject e)
{
System.out.println ("disposing " + e);
}
+ public Dimension getPreferredSize ()
+ {
+ Dimension aPreferredSize = super.getPreferredSize();
+ Dimension aMinimumSize = super.getMinimumSize();
+ if (aPreferredSize.width < aMinimumSize.width)
+ aPreferredSize.width = aMinimumSize.width;
+ return aPreferredSize;
+ }
+
class MouseListener extends MouseAdapter
{
@@ -375,172 +347,11 @@ public class AccessibilityTree
}
- /** listen to tree model changes in order to update XAccessibleText objects
- */
- class TextUpdateListener implements TreeModelListener
- {
- public void treeNodesChanged(TreeModelEvent e)
- {
- // 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
-// }
-// }
- }
- }
- }
- }
- // 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 )
- {
- // 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 );
-// }
-// }
- }
-
-
- protected MessageInterface
- maMessageDisplay;
- protected Print
- maPrinter;
protected AccessibleTreeCellRenderer
maCellRenderer;
+
private Canvas
maCanvas;
private boolean