summaryrefslogtreecommitdiffstats
path: root/toolkit/test/accessibility/AccessibilityWorkBench.java
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/test/accessibility/AccessibilityWorkBench.java')
-rwxr-xr-xtoolkit/test/accessibility/AccessibilityWorkBench.java607
1 files changed, 0 insertions, 607 deletions
diff --git a/toolkit/test/accessibility/AccessibilityWorkBench.java b/toolkit/test/accessibility/AccessibilityWorkBench.java
deleted file mode 100755
index b6b1409b4c1a..000000000000
--- a/toolkit/test/accessibility/AccessibilityWorkBench.java
+++ /dev/null
@@ -1,607 +0,0 @@
-import com.sun.star.awt.XWindow;
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.XPropertyChangeListener;
-import com.sun.star.beans.PropertyChangeEvent;
-import com.sun.star.container.XEnumerationAccess;
-import com.sun.star.container.XEnumeration;
-import com.sun.star.document.XEventListener;
-import com.sun.star.drawing.XDrawPage;
-import com.sun.star.drawing.XDrawView;
-import com.sun.star.frame.XController;
-import com.sun.star.frame.XFrame;
-import com.sun.star.frame.XFrameActionListener;
-import com.sun.star.frame.FrameActionEvent;
-import com.sun.star.frame.FrameAction;
-import com.sun.star.lang.XComponent;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.frame.XDesktop;
-import com.sun.star.frame.XModel;
-import com.sun.star.frame.XTerminateListener;
-import com.sun.star.uno.UnoRuntime;
-
-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.XAccessibleRelationSet;
-import drafts.com.sun.star.accessibility.XAccessibleStateSet;
-
-import drafts.com.sun.star.awt.XExtendedToolkit;
-
-import java.util.Vector;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.tree.*;
-import java.io.*;
-
-/** This class manages the GUI of the work bench.
- @see AccessibilityTreeModel
- for the implementation of the tree view on the left side which also
- manages the registration of accessibility listeners.
- @see Canvas
- for the graphical view of the accessible objects.
-*/
-public class AccessibilityWorkBench
- extends JFrame
- implements ActionListener,
- XTerminateListener
-{
- public static final String msVersion = "v1.7";
- public String msOptionsFileName = ".AWBrc";
-
- public static void main (String args[])
- {
- int nPortNumber = 5678;
- String sFileName
- = "file:///tmp/impress-test-document.sxi";
- // = "file:///tmp/draw-test-document.sxd";
-
- for (int i=0; i<args.length; i++)
- {
- if (args[i].equals ("-h") || args[i].equals ("--help") || args[i].equals ("-?"))
- {
- System.out.println ("usage: AccessibilityWorkBench <option>*");
- System.out.println ("options:");
- System.out.println (" -p <port-number> Port on which to connect to StarOffice.");
- System.out.println (" Defaults to 5678.");
- System.out.println (" -f <file-name-URL> URL of document file which is loaded when");
- System.out.println (" clicking on the Load button. Don't forget");
- System.out.println (" the file:// prefix!");
- System.exit (0);
- }
- else if (args[i].equals ("-p"))
- {
- nPortNumber = Integer.parseInt (args[++i]);
- }
- else if (args[i].equals ("-f"))
- {
- sFileName = args[++i];
- }
- }
-
- aWorkBench = new AccessibilityWorkBench (nPortNumber);
- }
-
-
- /** the Singleton Workbench object */
- private static AccessibilityWorkBench aWorkBench;
-
- /** access to the Singleton Workbench object */
- public static AccessibilityWorkBench get()
- {
- return aWorkBench;
- }
-
-
- public AccessibilityWorkBench (int nPortNumber)
- {
- mbInitialized = false;
-
- Layout ();
-
- MessageArea.println (System.getProperty ("os.name") + " / "
- + System.getProperty ("os.arch") + " / "
- + System.getProperty ("os.version"));
- MessageArea.println ("Using port " + nPortNumber);
- office = new SimpleOffice (nPortNumber);
- info = new InformationWriter ();
-
- addWindowListener (new WindowAdapter ()
- { public void windowClosing (WindowEvent e)
- { System.exit(0); }
- });
-
- initialize ();
- }
-
-
-
-
- /** Create and arrange the widgets of the GUI.
- */
- public void Layout ()
- {
- JScrollPane aScrollPane;
- GridBagConstraints constraints;
-
- // Create new layout.
- GridBagLayout aLayout = new GridBagLayout ();
- getContentPane().setLayout (aLayout);
-
- // Accessible Tree.
- maTree = new AccessibilityTree ();
- maTree.setMinimumSize (new Dimension (250,300));
- // maTree.setPreferredSize (new Dimension (300,500));
- JScrollPane aTreeScrollPane = new JScrollPane(maTree,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-
- // Canvas.
- maCanvas = new Canvas ();
- maCanvas.setTree (maTree);
- maTree.SetCanvas (maCanvas);
- maCanvas.setPreferredSize (new Dimension (1000,1000));
-
- // Split pane for tree view and canvas.
- JSplitPane aViewSplitPane = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,
- aTreeScrollPane, maCanvas);
- aViewSplitPane.setOneTouchExpandable(true);
- aViewSplitPane.setDividerLocation (aTreeScrollPane.getPreferredSize().width);
-
- // Text output area.
- maMessageArea = MessageArea.Instance ();
- maMessageArea.setMinimumSize (new Dimension (50,50));
- maMessageArea.setPreferredSize (new Dimension (300,100));
-
- // Split pane for the two views and the message area.
- JSplitPane aSplitPane = new JSplitPane (JSplitPane.VERTICAL_SPLIT,
- aViewSplitPane, maMessageArea);
- aSplitPane.setOneTouchExpandable(true);
- addGridElement (aSplitPane, 0,0, 2,1, 3,3,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH);
-
-
- // Button bar.
- maButtonBar = new JPanel();
- GridBagLayout aButtonLayout = new GridBagLayout ();
- maButtonBar.setLayout (new FlowLayout());
- addGridElement (maButtonBar, 0,3, 2,1, 1,0,
- GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL);
-
- // Buttons.
- aConnectButton = createButton ("Connect", "connect");
- aUpdateButton = createButton ("Update", "update");
- aShapesButton = createButton ("Expand Shapes", "shapes");
- aExpandButton = createButton ("Expand All", "expand");
- aQuitButton = createButton ("Quit", "quit");
- UpdateButtonStates ();
-
- LoadOptions();
-
- setJMenuBar (CreateMenuBar ());
-
- setTitle("Accessibility Workbench " + msVersion);
-
- pack ();
- setVisible (true);
- validate ();
- repaint();
- }
-
-
-
-
- /** Shortcut method for adding an object to a GridBagLayout.
- */
- void addGridElement (JComponent object,
- int x, int y, int width, int height, int weightx, int weighty,
- int anchor, int fill)
- {
- GridBagConstraints constraints = new GridBagConstraints ();
- constraints.gridx = x;
- constraints.gridy = y;
- constraints.gridwidth = width;
- constraints.gridheight = height;
- constraints.weightx = weightx;
- constraints.weighty = weighty;
- constraints.anchor = anchor;
- constraints.fill = fill;
- getContentPane().add (object, constraints);
- }
-
-
-
-
- /** Create a new button and place at the right most position into the
- button bar.
- */
- public JButton createButton (String title, String command)
- {
- JButton aButton = new JButton (title);
- aButton.setEnabled (false);
- aButton.setActionCommand (command);
- aButton.addActionListener (this);
-
- maButtonBar.add (aButton);
- return aButton;
- }
-
-
-
-
- /** Create a menu bar for the application.
- @return
- Returns the new menu bar. The returned reference is also
- remembered in the data member <member>maMenuBar</member>.
- */
- JMenuBar CreateMenuBar ()
- {
- // Menu bar.
- maMenuBar = new JMenuBar ();
-
- // File menu.
- JMenu aFileMenu = new JMenu ("File");
- maMenuBar.add (aFileMenu);
- JMenuItem aItem;
- aItem = new JMenuItem ("Quit");
- aFileMenu.add (aItem);
- aItem.addActionListener (this);
-
- // Options menu.
- JMenu aOptionsMenu = new JMenu ("Options");
- maMenuBar.add (aOptionsMenu);
- JCheckBoxMenuItem aCBItem;
- aCBItem = new JCheckBoxMenuItem ("Show Descriptions", maCanvas.getShowDescriptions());
- aOptionsMenu.add (aCBItem);
- aCBItem.addActionListener (this);
-
- aCBItem = new JCheckBoxMenuItem ("Show Names", maCanvas.getShowNames());
- aOptionsMenu.add (aCBItem);
- aCBItem.addActionListener (this);
-
- aCBItem = new JCheckBoxMenuItem ("Show Text", maCanvas.getShowText());
- aOptionsMenu.add (aCBItem);
- aCBItem.addActionListener (this);
-
- aCBItem = new JCheckBoxMenuItem ("Antialiased Rendering", maCanvas.getAntialiasing());
- aOptionsMenu.add (aCBItem);
- aCBItem.addActionListener (this);
-
- // Help menu.
- JMenu aHelpMenu = new JMenu ("Help");
- maMenuBar.add (aHelpMenu);
-
- aItem = new JMenuItem ("Help");
- aHelpMenu.add (aItem);
- aItem.addActionListener (this);
-
- aItem = new JMenuItem ("News");
- aHelpMenu.add (aItem);
- aItem.addActionListener (this);
-
- aItem = new JMenuItem ("About");
- aHelpMenu.add (aItem);
- aItem.addActionListener (this);
-
- return maMenuBar;
- }
-
-
-
-
- protected void LoadOptions ()
- {
- try
- {
- File aOptionsFile = new File (
- System.getProperty ("user.home"),
- msOptionsFileName);
- StreamTokenizer aTokenizer = new StreamTokenizer (new FileReader (aOptionsFile));
- aTokenizer.eolIsSignificant (true);
- while (true)
- {
- if (aTokenizer.nextToken() != StreamTokenizer.TT_WORD)
- {
- if (aTokenizer.ttype != StreamTokenizer.TT_EOF)
- System.out.println ("unexpected token in options file: "
- + aTokenizer.toString()
- + " instead of option name");
- break;
- }
- String sOptionName = aTokenizer.sval;
-
- if (aTokenizer.nextToken() != '=')
- {
- System.out.println ("unexpected token in options file: "
- + aTokenizer.toString()
- + " instead of =");
- break;
- }
-
- String sValue = null;
- Number nValue = null;
- switch (aTokenizer.nextToken())
- {
- case StreamTokenizer.TT_WORD:
- sValue = aTokenizer.sval;
- break;
- case StreamTokenizer.TT_NUMBER:
- nValue = new Double (aTokenizer.nval);
- break;
- }
-
- if (aTokenizer.nextToken() == StreamTokenizer.TT_EOF)
- break;
- if (aTokenizer.ttype != StreamTokenizer.TT_EOL)
- {
- System.out.println ("unexpected token in options file: " + aTokenizer.toString()
- + " instead of newline");
- break;
- }
-
- if (sOptionName.compareTo ("ShowDescriptions") == 0)
- maCanvas.setShowDescriptions (sValue.compareTo ("true")==0);
- else if (sOptionName.compareTo ("ShowNames") == 0)
- maCanvas.setShowNames (sValue.compareTo ("true")==0);
- else if (sOptionName.compareTo ("ShowText") == 0)
- maCanvas.setShowText (sValue.compareTo ("true")==0);
- else if (sOptionName.compareTo ("Antialiasing") == 0)
- maCanvas.setAntialiasing (sValue.compareTo ("true")==0);
- else
- System.out.println ("option " + sOptionName + " unknown");
-
- }
- }
- catch (java.io.FileNotFoundException e)
- {}
- catch (Exception e)
- {
- System.out.println ("caught exception while loading options file : " + e);
- }
- }
-
- protected void SaveOptions ()
- {
- try
- {
- File aOptionsFile = new File (
- System.getProperty ("user.home"),
- msOptionsFileName);
- PrintWriter aOut = new PrintWriter (new FileWriter (aOptionsFile));
- aOut.println ("ShowDescriptions = " + maCanvas.getShowDescriptions());
- aOut.println ("ShowNames = " + maCanvas.getShowNames());
- aOut.println ("ShowText = " + maCanvas.getShowText());
- aOut.println ("Antialiasing = " + maCanvas.getAntialiasing());
- aOut.close();
- }
- catch (Exception e)
- {
- System.out.println ("caught exception while writing options file : " + e);
- }
- }
-
-
- /** Initialize the AWB. This includes clearing the canvas, add
- listeners, creation of a new tree model for the tree list box and
- the update of the button states.
-
- This method may be called any number of times. Note that all
- actions will be carried out every time. The main purpose of a
- second call is that of a re-initialization after a reconnect.
- */
- protected void initialize ()
- {
- maCanvas.clear();
-
- AccessibilityTreeModel aModel = null;
- aModel = new AccessibilityTreeModel (createTreeModelRoot());
-
- aModel.setCanvas (maCanvas);
- maTree.setModel (aModel);
-
-
- if (office != null)
- {
- // Add terminate listener.
- if (office.getDesktop() != null)
- office.getDesktop().addTerminateListener (this);
-
- XExtendedToolkit xToolkit = office.getExtendedToolkit();
- // Remove old top window listener.
- if (maTopWindowListener != null)
- xToolkit.removeTopWindowListener (maQueuedTopWindowListener);
- // Add top window listener.
- if (xToolkit != null)
- {
- MessageArea.println ("registering at extended toolkit");
- maTopWindowListener = new TopWindowListener (aModel, office);
- maQueuedTopWindowListener = new QueuedTopWindowListener (maTopWindowListener);
- xToolkit.addTopWindowListener (maQueuedTopWindowListener);
- maTopWindowListener.Initialize ();
- }
- else
- maTopWindowListener = null;
- }
-
- mbInitialized = true;
- UpdateButtonStates ();
- }
-
-
-
-
- /** Update the states of the buttons according to the internal state of
- the AWB.
- */
- protected void UpdateButtonStates ()
- {
- aConnectButton.setEnabled (mbInitialized);
- aQuitButton.setEnabled (mbInitialized);
- aUpdateButton.setEnabled (mbInitialized);
- aExpandButton.setEnabled (mbInitialized);
- aShapesButton.setEnabled (mbInitialized);
- }
-
-
-
-
- /** Callback for GUI actions from the buttons.
- */
- public void actionPerformed (java.awt.event.ActionEvent e)
- {
- if (e.getActionCommand().equals("connect"))
- {
- office.connect();
- initialize ();
- }
- else if (e.getActionCommand().equals("quit"))
- {
- AccessibilityTreeModel aModel = (AccessibilityTreeModel)maTree.getModel();
- aModel.clear();
- System.exit (0);
- }
- else if (e.getActionCommand().equals("update"))
- {
- initialize ();
- }
- else if (e.getActionCommand().equals("shapes"))
- {
- Cursor aCursor = getCursor();
- setCursor (new Cursor (Cursor.WAIT_CURSOR));
- maTree.expandShapes();
- setCursor (aCursor);
- }
- else if (e.getActionCommand().equals("expand"))
- {
- Cursor aCursor = getCursor();
- setCursor (new Cursor (Cursor.WAIT_CURSOR));
- maTree.expandAll();
- setCursor (aCursor);
- }
- else if (e.getActionCommand().equals ("Quit"))
- {
- System.out.println ("exiting");
- System.exit (0);
- }
- else if (e.getActionCommand().equals ("Show Descriptions"))
- {
- maCanvas.setShowDescriptions ( ! maCanvas.getShowDescriptions());
- SaveOptions ();
- }
- else if (e.getActionCommand().equals ("Show Names"))
- {
- maCanvas.setShowNames ( ! maCanvas.getShowNames());
- SaveOptions ();
- }
- else if (e.getActionCommand().equals ("Antialiased Rendering"))
- {
- maCanvas.setAntialiasing ( ! maCanvas.getAntialiasing());
- SaveOptions ();
- }
- else if (e.getActionCommand().equals ("Help"))
- {
- HelpWindow.Instance().loadFile ("help.html");
- }
- else if (e.getActionCommand().equals ("News"))
- {
- try{
- HelpWindow.Instance().loadFile ("news.html");
- } catch (Exception ex) {}
- }
- else if (e.getActionCommand().equals ("About"))
- {
- HelpWindow.Instance().loadFile ("about.html");
- }
- else
- {
- System.err.println("unknown command " + e.getActionCommand());
- }
- }
-
-
-
-
- /** Create an AccessibilityTreeModel root which contains the documents
- (top windows) that are present at the moment.
- */
- private AccessibleTreeNode createTreeModelRoot()
- {
- // create root node
- VectorNode aRoot = new VectorNode ("Accessibility Tree", null);
- if (maTopWindowListener != null)
- maTopWindowListener.Initialize ();
- return aRoot;
- }
-
-
-
-
-
- // XEventListener
- public void disposing( com.sun.star.lang.EventObject aSourceObj )
- {
- XFrame xFrame = (XFrame)UnoRuntime.queryInterface(XFrame.class, aSourceObj.Source);
-
- if( xFrame != null )
- System.out.println("frame disposed");
- else
- System.out.println("controller disposed");
- }
-
-
-
-
- // XTerminateListener
- public void queryTermination (final com.sun.star.lang.EventObject aEvent) throws RuntimeException
- {
- System.out.println ("Terminate Event : " + aEvent);
- }
-
-
-
-
- // XTerminateListener
- public void notifyTermination (final com.sun.star.lang.EventObject aEvent) throws RuntimeException
- {
- System.out.println ("Notifiy Termination Event : " + aEvent);
- }
-
-
-
- protected SimpleOffice
- office;
- protected InformationWriter
- info;
-
- private XModel
- mxModel;
- private JPanel
- maMainPanel,
- maButtonBar;
- private Canvas
- maCanvas;
- private AccessibilityTree
- maTree;
- private JScrollPane
- maScrollPane;
- private MessageArea
- maMessageArea;
- private JButton
- aConnectButton,
- aQuitButton,
- aUpdateButton,
- aExpandButton,
- aShapesButton;
- private JMenuBar
- maMenuBar;
- private String
- msMessage;
- private boolean
- mbInitialized;
- private TopWindowListener
- maTopWindowListener;
- private QueuedTopWindowListener
- maQueuedTopWindowListener;
-}