diff options
Diffstat (limited to 'accessibility/workben')
66 files changed, 0 insertions, 8971 deletions
diff --git a/accessibility/workben/TODO b/accessibility/workben/TODO deleted file mode 100644 index 6fdfd5cb8..000000000 --- a/accessibility/workben/TODO +++ /dev/null @@ -1,13 +0,0 @@ -This is a unsorted list of TODO's and idea regarding the Accessibility Workbench - -* increase repaint performance -* fix paint problems in ObjectViewContainer for e.g. File menu -* change package structure to be flat (apps don't need deep package names) -* add ant build script(s) -* evaluate TreeTable as enhanced overview -* add error panel and a bunch of consistency checks -* add focus tracking mode -* evaluate drawing transparent frames at screen coordinates of an object -* enhance text view (colors) -* add table view -* more generic view loading (Class.forName()) diff --git a/accessibility/workben/makefile b/accessibility/workben/makefile deleted file mode 100644 index 4bd7c05e4..000000000 --- a/accessibility/workben/makefile +++ /dev/null @@ -1,9 +0,0 @@ -all: - cd source/org/openoffice/accessibility ; $(MAKE) all - -ROOT=source -SUBDIRS=source/org/openoffice/accessibility -include source/makefile.in - -run: all - $(JAVA) -classpath $(CLASSPATH) org.openoffice.accessibility.awb.AccessibilityWorkBench diff --git a/accessibility/workben/makefile.in b/accessibility/workben/makefile.in deleted file mode 100644 index d81df5fb7..000000000 --- a/accessibility/workben/makefile.in +++ /dev/null @@ -1,31 +0,0 @@ -PRJ=$(ROOT)/.. -SETTINGS=$(OO_SDK_HOME)/settings -include $(SETTINGS)/settings.mk -include $(SETTINGS)/std.mk -include $(SETTINGS)/dk.mk - -OUT_COMP_JAVA = $(OUT_CLASS)/$(patsubst .,/,$(PACKAGE)) -JAVAC=$(JAVA_HOME)/bin/javac -JAVA=$(JAVA_HOME)/bin/java -CLASS_FILES = $(patsubst %.java, %.class, $(JAVAFILES)) -CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),$(OFFICE_CLASSES_DIR)/jurt.jar\ - $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/unoil.jar\ - $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/ridl.jar\ - $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/juh.jar\ - $(PATH_SEPARATOR)$(OUT_COMP_JAVA)\ - $(PATH_SEPARATOR).\ - $(PATH_SEPARATOR)$(ROOT)\ - ) - -subdirs: - $(foreach dir,$(SUBDIRS), cd $(dir);$(MAKE);cd ..;) - -clean: - -rm *.class *.jar - $(foreach dir,$(SUBDIRS), cd $(dir);$(MAKE) clean ; cd ..;) - - -%.class : %.java - $(JAVAC) -classpath $(CLASSPATH) $< - -.PHONY: all package clean subdirs diff --git a/accessibility/workben/makefile.mk b/accessibility/workben/makefile.mk deleted file mode 100644 index 7f19d8936..000000000 --- a/accessibility/workben/makefile.mk +++ /dev/null @@ -1,39 +0,0 @@ -# copied from settings.mk -SOLARBINDIR=$(SOLARVERSION)$/$(INPATH)$/bin$(UPDMINOREXT) - -# Please modify the following lines to match your environment: -# If you use the run: target at the end of the file, then adapt pipe name -PIPE_NAME = $(USER) - -# The following variables probably don't need to be changed. -JAVA = java -# The JAR_PATH points to the jar files of your local office installation. -JAR_PATH = $(SOLARBINDIR)$/ - - -# The rest of this makefile should not need to be touched. - -JAR_FILES = \ - unoil.jar \ - ridl.jar \ - jurt.jar \ - juh.jar \ - java_uno.jar - - -JAVA_CLASSPATHS := \ - ..$/$(INPATH)$/class \ - $(foreach,i,$(JAR_FILES) $(JAR_PATH)$i) \ - $(CLASSPATH) - -CLASSPATH !:=$(JAVA_CLASSPATHS:t$(PATH_SEPERATOR)) - -all: - build - -# Example of how to run the work bench. -run: - +$(JAVA) -classpath "$(CLASSPATH)" org/openoffice/accessibility/awb/AccessibilityWorkBench -p $(PIPE_NAME) - -runjar: - +$(JAVA) -classpath "$(CLASSPATH)" -jar AccessibilityWorkBench.jar -p $(PIPE_NAME) diff --git a/accessibility/workben/org/openoffice/accessibility/Makefile b/accessibility/workben/org/openoffice/accessibility/Makefile deleted file mode 100644 index a6db6a05a..000000000 --- a/accessibility/workben/org/openoffice/accessibility/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -all : subdirs - -ROOT=../../../ -SUBDIRS=misc awb -include $(ROOT)/makefile.in - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java b/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java deleted file mode 100644 index fa4fd69d1..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java +++ /dev/null @@ -1,702 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb; - -import java.awt.Cursor; -import java.awt.GridBagConstraints; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.JScrollPane; -import javax.swing.JSplitPane; -import javax.swing.event.TreeSelectionListener; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeExpansionListener; -import javax.swing.event.TreeWillExpandListener; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; - -import com.sun.star.accessibility.XAccessible; -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.frame.XFrame; -import com.sun.star.frame.XTerminateListener; -import com.sun.star.lang.EventObject; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.misc.MessageArea; -import org.openoffice.accessibility.misc.Options; -import org.openoffice.accessibility.misc.OfficeConnection; -import org.openoffice.accessibility.misc.SimpleOffice; -import org.openoffice.accessibility.awb.canvas.Canvas; -import org.openoffice.accessibility.awb.tree.AccessibilityTree; -import org.openoffice.accessibility.awb.tree.AccessibilityModel; -import org.openoffice.accessibility.awb.tree.DynamicAccessibilityModel; -import org.openoffice.accessibility.awb.view.ObjectViewContainer; -import org.openoffice.accessibility.awb.view.ObjectViewContainerWindow; - - - -/** 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 XTerminateListener, - ActionListener, - TreeSelectionListener -{ - public static final String msVersion = "v1.9"; - public String msOptionsFileName = ".AWBrc"; - - public static void main (String args[]) - { - String sPipeName = System.getenv( "USER" ); - - 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 <pipe-name> name of the pipe to use to connect to OpenOffice.org."); - System.out.println (" Defaults to $USER."); - System.exit (0); - } - else if (args[i].equals ("-p")) - { - sPipeName = args[++i]; - } - } - - saWorkBench = new AccessibilityWorkBench (sPipeName); - } - - - - - /** Return the one instance of the AccessibilityWorkBench - @return - Returns null when the AccessibilityWorkBench could not be - created successfully. - */ - public static AccessibilityWorkBench Instance () - { - return saWorkBench; - } - - - - /** Create an accessibility work bench that listens at the specified - port to Office applications. - */ - private AccessibilityWorkBench (String sPipeName) - { - mbInitialized = false; - - OfficeConnection.SetPipeName (sPipeName); - Options.Instance().Load (msOptionsFileName); - Layout (); - - MessageArea.println (System.getProperty ("os.name") + " / " - + System.getProperty ("os.arch") + " / " - + System.getProperty ("os.version")); - MessageArea.println ("Using pipe name " + sPipeName); - - maTree.addTreeSelectionListener (this); - - addWindowListener (new WindowAdapter () - { public void windowClosing (WindowEvent e) {Quit();} } - ); - - OfficeConnection.Instance().AddConnectionListener (this); - Initialize (); - } - - - - - /** Create and arrange the widgets of the GUI. - */ - public void Layout () - { - setSize (new java.awt.Dimension (800,600)); - - JScrollPane aScrollPane; - GridBagConstraints constraints; - - // Create new layout. - java.awt.GridBagLayout aLayout = new java.awt.GridBagLayout (); - getContentPane().setLayout (aLayout); - - // Accessible Tree. - javax.swing.tree.TreeModel treeModel = new DynamicAccessibilityModel(); - maTree = new AccessibilityTree(treeModel); - // Add the model as tree listeners to be able to populate/clear the - // child lists on demand. - maTree.addTreeExpansionListener((TreeExpansionListener) treeModel); - maTree.addTreeWillExpandListener((TreeWillExpandListener) treeModel); - - JScrollPane aTreeScrollPane = new JScrollPane( - maTree, - JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, - JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - aTreeScrollPane.setPreferredSize (new java.awt.Dimension (400,300)); - - // Object view shows details about the currently selected accessible - // object. - maObjectViewContainer = new ObjectViewContainer (); - JScrollPane aObjectViewContainerScrollPane = new JScrollPane( - maObjectViewContainer, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - aObjectViewContainerScrollPane.setPreferredSize ( - new java.awt.Dimension (400,300)); - JButton aCornerButton = new JButton ("CreateNewViewWindow"); - aCornerButton.addActionListener (this); - aObjectViewContainerScrollPane.setCorner ( - JScrollPane.LOWER_RIGHT_CORNER, - aCornerButton); - - // Split pane for tree view and object view. - JSplitPane aLeftViewSplitPane = new JSplitPane ( - JSplitPane.VERTICAL_SPLIT, - aTreeScrollPane, - aObjectViewContainerScrollPane - ); - aLeftViewSplitPane.setDividerLocation (300); - aLeftViewSplitPane.setContinuousLayout (true); - - // Canvas. - maCanvas = new Canvas (); - maCanvas.SetTree (maTree); - JScrollPane aScrolledCanvas = new JScrollPane(maCanvas, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - aScrolledCanvas.getViewport().setBackground (java.awt.Color.RED); - aScrolledCanvas.setPreferredSize (new java.awt.Dimension(600,400)); - - // Split pane for tree view and canvas. - JSplitPane aViewSplitPane = new JSplitPane ( - JSplitPane.HORIZONTAL_SPLIT, - aLeftViewSplitPane, - aScrolledCanvas - ); - aViewSplitPane.setOneTouchExpandable(true); - aViewSplitPane.setDividerLocation (400); - aViewSplitPane.setContinuousLayout (true); - - // Split pane for the three views at the top and the message area. - MessageArea.Instance().setPreferredSize (new java.awt.Dimension(600,50)); - JSplitPane aSplitPane = new JSplitPane ( - JSplitPane.VERTICAL_SPLIT, - aViewSplitPane, - MessageArea.Instance()); - aSplitPane.setOneTouchExpandable(true); - aSplitPane.setContinuousLayout (true); - addGridElement (aSplitPane, 0,0, 2,1, 3,3, - GridBagConstraints.CENTER, GridBagConstraints.BOTH); - - // Button bar. - maButtonBar = new javax.swing.JPanel(); - java.awt.GridBagLayout aButtonLayout = new java.awt.GridBagLayout (); - maButtonBar.setLayout (new java.awt.FlowLayout()); - addGridElement (maButtonBar, 0,3, 2,1, 1,0, - GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL); - - // Buttons. - // maConnectButton = createButton ("Connect", "connect"); - // maUpdateButton = createButton ("Update", "update"); - // maShapesButton = createButton ("Expand Shapes", "shapes"); - maExpandButton = createButton ("Expand All", "expand"); - maQuitButton = createButton ("Quit", "quit"); - UpdateButtonStates (); - - setJMenuBar (CreateMenuBar ()); - - setTitle("Accessibility Workbench " + msVersion); - - setVisible (true); - pack (); - aSplitPane.setDividerLocation (1.0); - 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>. - */ - javax.swing.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); - - // View menu. - JMenu aViewMenu = new JMenu ("View"); - maMenuBar.add (aViewMenu); - ButtonGroup aGroup = new ButtonGroup (); - int nZoomMode = Options.GetInteger ("ZoomMode", Canvas.WHOLE_SCREEN); - JRadioButtonMenuItem aRadioButton = new JRadioButtonMenuItem ( - "Whole Screen", nZoomMode==Canvas.WHOLE_SCREEN); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - aRadioButton = new JRadioButtonMenuItem ("200%", nZoomMode==200); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - aRadioButton = new JRadioButtonMenuItem ("100%", nZoomMode==100); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - aRadioButton = new JRadioButtonMenuItem ("50%", nZoomMode==50); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - aRadioButton = new JRadioButtonMenuItem ("25%", nZoomMode==25); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - aRadioButton = new JRadioButtonMenuItem ("10%", nZoomMode==10); - aGroup.add (aRadioButton); - aViewMenu.add (aRadioButton); - aRadioButton.addActionListener (this); - - // Options menu. - JMenu aOptionsMenu = new JMenu ("Options"); - maMenuBar.add (aOptionsMenu); - JCheckBoxMenuItem aCBItem; - aCBItem = new JCheckBoxMenuItem ("Show Descriptions", - Options.GetBoolean("ShowDescriptions")); - aOptionsMenu.add (aCBItem); - aCBItem.addActionListener (this); - - aCBItem = new JCheckBoxMenuItem ("Show Names", - Options.GetBoolean ("ShowNames")); - aOptionsMenu.add (aCBItem); - aCBItem.addActionListener (this); - - aCBItem = new JCheckBoxMenuItem ("Show Text", - Options.GetBoolean ("ShowText")); - aOptionsMenu.add (aCBItem); - aCBItem.addActionListener (this); - - aCBItem = new JCheckBoxMenuItem ("Antialiased Rendering", - Options.GetBoolean ("Antialiasing")); - 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; - } - - - - - /** 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.SetTree (maTree); - - SimpleOffice aOffice = SimpleOffice.Instance (); - if (aOffice != null) - { - // Add terminate listener. - if (aOffice.GetDesktop() != null) - aOffice.GetDesktop().addTerminateListener (this); - - } - - mbInitialized = true; - UpdateButtonStates (); - } - - - - - /** Update the states of the buttons according to the internal state of - the AWB. - */ - protected void UpdateButtonStates () - { - // maConnectButton.setEnabled (mbInitialized); - maQuitButton.setEnabled (true); - // maUpdateButton.setEnabled (mbInitialized); - maExpandButton.setEnabled (mbInitialized); - // maShapesButton.setEnabled (mbInitialized); - } - - - - /** Callback for GUI actions from the buttons. - */ - public void actionPerformed (ActionEvent aEvent) - { - String sCommand = aEvent.getActionCommand(); - if (sCommand.equals("connect")) - { - SimpleOffice.Clear(); - Initialize (); - } - else if (sCommand.equals("quit")) - { - Quit (); - } - else if (sCommand.equals("update")) - { -// maTree.Dispose(); - Initialize (); - } - else if (sCommand.equals("shapes")) - { - Cursor aCursor = getCursor(); - setCursor (new Cursor (Cursor.WAIT_CURSOR)); - // maTree.expandShapes(); - setCursor (aCursor); - } - else if (sCommand.equals("expand")) - { - Cursor aCursor = getCursor(); - setCursor (new Cursor (Cursor.WAIT_CURSOR)); - - for (int i=0; i<maTree.getRowCount(); i++) - maTree.expandRow (i); - // maAccessibilityTree.expandAll(); - setCursor (aCursor); - } - else if (sCommand.equals ("Quit")) - { - System.out.println ("exiting"); - System.exit (0); - } - else if (sCommand.equals ("Show Descriptions")) - { - Options.SetBoolean ("ShowDescriptions", - ((JCheckBoxMenuItem)aEvent.getSource()).getState()); - maCanvas.repaint(); - } - else if (sCommand.equals ("Show Names")) - { - Options.SetBoolean ("ShowNames", - ((JCheckBoxMenuItem)aEvent.getSource()).getState()); - maCanvas.repaint(); - } - else if (sCommand.equals ("Show Text")) - { - Options.SetBoolean ("ShowText", - ((JCheckBoxMenuItem)aEvent.getSource()).getState()); - maCanvas.repaint(); - } - else if (sCommand.equals ("Antialiased Rendering")) - { - Options.SetBoolean ("Antialiasing", - ((JCheckBoxMenuItem)aEvent.getSource()).getState()); - maCanvas.repaint(); - } - else if (sCommand.equals ("Help")) - { - HelpWindow.Instance().loadFile ("help.html"); - } - else if (sCommand.equals ("News")) - { - try{ - HelpWindow.Instance().loadFile ("news.html"); - } catch (Exception ex) {} - } - else if (sCommand.equals ("About")) - { - HelpWindow.Instance().loadFile ("about.html"); - } - else if (sCommand.equals ("Whole Screen")) - { - Options.SetInteger ("ZoomMode", Canvas.WHOLE_SCREEN); - maCanvas.repaint(); - } - else if (sCommand.equals ("200%")) - { - Options.SetInteger ("ZoomMode", 200); - maCanvas.repaint(); - } - else if (sCommand.equals ("100%")) - { - Options.SetInteger ("ZoomMode", 100); - maCanvas.repaint(); - } - else if (sCommand.equals ("50%")) - { - Options.SetInteger ("ZoomMode", 50); - maCanvas.repaint(); - } - else if (sCommand.equals ("25%")) - { - Options.SetInteger ("ZoomMode", 25); - maCanvas.repaint(); - } - else if (sCommand.equals ("10%")) - { - Options.SetInteger ("ZoomMode", 10); - maCanvas.repaint(); - } - else if (sCommand.equals ("<connected>")) - { - Connected (); - } - else if (sCommand.equals ("CreateNewViewWindow")) - { - TreePath aSelectionPath = maTree.getSelectionPath(); - if (aSelectionPath != null) - { - javax.swing.tree.TreeNode aSelectedNode = - (javax.swing.tree.TreeNode)aSelectionPath.getLastPathComponent(); - if (aSelectedNode instanceof XAccessible) { - new ObjectViewContainerWindow (((XAccessible) aSelectedNode).getAccessibleContext()); - } - } - } - else - { - System.err.println("unknown command " + sCommand); - } - } - - - - - /** TreeSelectionListener - Tell the object view and the canvas about the selected object. - */ - public void valueChanged (TreeSelectionEvent aEvent) { - - if (aEvent.isAddedPath()) { - Cursor aCursor = getCursor(); - setCursor (new Cursor (Cursor.WAIT_CURSOR)); - - javax.swing.tree.TreePath aPath = aEvent.getPath(); - maTree.scrollPathToVisible (aPath); - Object aObject = aPath.getLastPathComponent(); - implSetCurrentObject( aObject ); - if (aObject instanceof XAccessible) - { - if (maObjectViewContainer != null) - maObjectViewContainer.SetObject( ((XAccessible)aObject).getAccessibleContext() ); - } - if (maCanvas != null) - maCanvas.SelectObject ((TreeNode) aObject); - setCursor (aCursor); - } else { - implSetCurrentObject( aEvent.getPath().getLastPathComponent() ); - if (maObjectViewContainer != null) - maObjectViewContainer.SetObject (null); - if (maCanvas != null) - maCanvas.SelectObject (null); - } - } - - - private void implSetCurrentObject( Object i_object ) - { - if ( maObjectViewContainer == null ) - return; - if ( maCurrentObject != null ) - { - AccessibilityModel.removeEventListener( (TreeNode)maCurrentObject, maObjectViewContainer ); - } - maCurrentObject = i_object; - if ( maCurrentObject != null ) - { - AccessibilityModel.addEventListener( (TreeNode)maCurrentObject, maObjectViewContainer ); - } - } - - // XEventListener - public void disposing (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 EventObject aEvent) throws com.sun.star.frame.TerminationVetoException - { - System.out.println ("Terminate Event : " + aEvent); - } - - - - - // XTerminateListener - public void notifyTermination(final EventObject aEvent) - { - System.out.println ("Notifiy Termination Event : " + aEvent); - } - - - /** Called after the AWB is connected to an Office application. - */ - private void Connected () - { - // Clear the tree and by expanding the root node initiate the - // scanning and insertion of nodes for the top-level windows. -// maTree.Clear(); -// maTree.collapseRow (0); -// maTree.expandRow (0); - - // Register the top window listener. - XExtendedToolkit xToolkit = - SimpleOffice.Instance().GetExtendedToolkit(); - if (xToolkit != null) - { - maTree.setToolkit(xToolkit); - } - } - - - /** Called when shutting down the AWB tool. - */ - private void Quit () - { -// maTree.Dispose(); - System.exit (0); - } - - /// The Singleton Workbench object. - private static AccessibilityWorkBench - saWorkBench = null; - - private JPanel maMainPanel; - private JPanel maButtonBar; - private Canvas maCanvas; - private AccessibilityTree maTree; - private ObjectViewContainer maObjectViewContainer; - private JButton - maConnectButton, - maQuitButton, - maUpdateButton, - maExpandButton, - maShapesButton; - private JMenuBar maMenuBar; - private boolean mbInitialized; - private Object maCurrentObject = null; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java b/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java deleted file mode 100644 index c344812f8..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java +++ /dev/null @@ -1,187 +0,0 @@ -package org.openoffice.accessibility.awb; - -import javax.swing.JFrame; -import javax.swing.JScrollPane; -import javax.swing.JEditorPane; -import javax.swing.JButton; -import java.net.URL; -import javax.swing.event.HyperlinkListener; -import javax.swing.event.HyperlinkEvent; -import java.net.MalformedURLException; -import java.io.IOException; -import java.io.File; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.awt.event.ActionListener; -import java.util.LinkedList; - -public class HelpWindow - implements ActionListener -{ - public static synchronized HelpWindow Instance () - { - if (maInstance == null) - maInstance = new HelpWindow(); - return maInstance; - } - - public void loadFile (String sFilename) - { - File aFile = new File (sFilename); - try - { - loadURL (aFile.toURI().toURL()); - } - catch (MalformedURLException e) - { - e.printStackTrace (System.err); - } - } - public void loadURL (String sURL) - { - try - { - loadURL (new URL (sURL)); - } - catch (MalformedURLException e) - { - e.printStackTrace (System.err); - } - } - - - - - public void loadURL (URL aURL) - { - maHistory.addLast (aURL); - selectHistoryPage (maHistory.size()-1); - maFrame.toFront (); - } - - - - - private HelpWindow () - { - try - { - maCurrentHistoryEntry = -1; - maHistory = new LinkedList(); - - maFrame = new JFrame (); - maFrame.addWindowListener (new WindowAdapter () - { - public void windowClosing (WindowEvent e) - { - maInstance = null; - } - }); - maContent = createContentWidget(); - - maFrame.getContentPane().setLayout (new GridBagLayout()); - GridBagConstraints aConstraints = new GridBagConstraints (); - aConstraints.gridx = 0; - aConstraints.gridy = 0; - aConstraints.gridwidth = 3; - aConstraints.weightx = 1; - aConstraints.weighty = 1; - aConstraints.fill = GridBagConstraints.BOTH; - maFrame.getContentPane().add (new JScrollPane (maContent), aConstraints); - - aConstraints = new GridBagConstraints(); - aConstraints.gridx = 0; - aConstraints.gridy = 1; - maPrevButton = new JButton ("Prev"); - maFrame.getContentPane().add (maPrevButton, aConstraints); - maPrevButton.addActionListener (this); - - aConstraints = new GridBagConstraints(); - aConstraints.gridx = 1; - aConstraints.gridy = 1; - maNextButton = new JButton ("Next"); - maFrame.getContentPane().add (maNextButton, aConstraints); - maNextButton.addActionListener (this); - - aConstraints = new GridBagConstraints(); - aConstraints.gridx = 2; - aConstraints.gridy = 1; - aConstraints.anchor = GridBagConstraints.EAST; - JButton aButton = new JButton ("Close"); - maFrame.getContentPane().add (aButton, aConstraints); - aButton.addActionListener (this); - - maFrame.setSize (600,400); - maFrame.setVisible (true); - } - catch (Exception e) - {} - } - - public void actionPerformed (java.awt.event.ActionEvent e) - { - if (e.getActionCommand().equals("Prev")) - { - selectHistoryPage (maCurrentHistoryEntry - 1); - } - else if (e.getActionCommand().equals("Next")) - { - selectHistoryPage (maCurrentHistoryEntry + 1); - } - else if (e.getActionCommand().equals("Close")) - { - maFrame.dispose (); - maInstance = null; - } - } - - private JEditorPane createContentWidget () - { - JEditorPane aContent = new JEditorPane (); - aContent.setEditable (false); - aContent.addHyperlinkListener (new HyperlinkListener() - { - public void hyperlinkUpdate (HyperlinkEvent e) - { - if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) - HelpWindow.Instance().loadURL (e.getURL()); - } - }); - return aContent; - } - - private void selectHistoryPage (int i) - { - if (i < 0) - i = 0; - else if (i >= maHistory.size()-1) - i = maHistory.size()-1; - if (i != maCurrentHistoryEntry) - { - URL aURL = (URL)maHistory.get (i); - try - { - maContent.setPage (aURL); - } - catch (java.io.IOException ex) - { - ex.printStackTrace(System.err); - } - - maCurrentHistoryEntry = i; - } - - maPrevButton.setEnabled (maCurrentHistoryEntry > 0); - maNextButton.setEnabled (maCurrentHistoryEntry < maHistory.size()-1); - } - - private static HelpWindow maInstance = null; - private JFrame maFrame; - private JEditorPane maContent; - private LinkedList maHistory; - private int maCurrentHistoryEntry; - private JButton maPrevButton; - private JButton maNextButton; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/Makefile deleted file mode 100644 index 88a004ec2..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : package - -ROOT=../../../.. -PACKAGE = org.openoffice.accessibility.awb -SUBDIRS = canvas event tree view - -include makefile.common - -include $(ROOT)/makefile.in - -package: subdirs $(CLASS_FILES) diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java deleted file mode 100644 index 78855b5a3..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java +++ /dev/null @@ -1,322 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.canvas; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.Toolkit; -import java.awt.geom.Rectangle2D; -import java.util.Iterator; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JViewport; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.tree.TreePath; - -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleComponent; - -import org.openoffice.accessibility.misc.Options; - -/** This canvas displays accessible objects graphically. Each accessible - object with graphical representation is represented by an - CanvasShape object and has to be added by the - <member>addAccessible</member> member function. - - <p>The canvas listens to selection events of the associated JTree and - highlights the first selected node of that tree.</p> -*/ -public class Canvas - extends JPanel -{ - // This constant can be passed to SetZoomMode to always show the whole screen. - public static final int WHOLE_SCREEN = -1; - - public Canvas () - { - super (true); - maShapeList = new ShapeContainer (this); - maMouseObserver = new MouseObserver (this); - maTree = null; - mnHOffset = 0; - mnVOffset = 0; - mnScale = 1; - maLastWidgetSize = new Dimension (0,0); - } - - - - /** Tell the canvas which tree to use to highlight accessible - objects and to observe for changes in the tree structure. - */ - public void SetTree (javax.swing.JTree aTree) - { - if (aTree != maTree) - { - maTree = aTree; - maShapeList.SetTree (maTree); - maMouseObserver.SetTree (maTree); - } - } - - - - - private void Clear () - { - maShapeList.Clear(); - } - - - - - public Iterator GetShapeIterator () - { - return maShapeList.GetIterator(); - } - - - - - public void paintComponent (Graphics g) - { - synchronized (g) - { - super.paintComponent (g); - - Graphics2D g2 = (Graphics2D)g; - if (Options.GetBoolean("Antialiasing")) - g2.setRenderingHint (RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - else - g2.setRenderingHint (RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_OFF); - - setupTransformation (); - g2.translate (mnHOffset, mnVOffset); - g2.scale (mnScale, mnScale); - - // Draw the screen representation to give a hint of the location of the - // accessible object on the screen. - Dimension aScreenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Rectangle2D.Double aScreen = new Rectangle2D.Double ( - 0, - 0, - aScreenSize.getWidth(), - aScreenSize.getHeight()); - // Fill the screen rectangle and draw a frame arround it to increase its visibility. - g2.setColor (new Color (250,240,230)); - g2.fill (aScreen); - g2.setColor (Color.BLACK); - g2.draw (aScreen); - - synchronized (maShapeList) - { - Iterator aShapeIterator = maShapeList.GetIterator(); - boolean bShowDescriptions = Options.GetBoolean ("ShowDescriptions"); - boolean bShowNames = Options.GetBoolean ("ShowNames"); - boolean bShowText = Options.GetBoolean ("ShowText"); - while (aShapeIterator.hasNext()) - { - CanvasShape aCanvasShape = - (CanvasShape)aShapeIterator.next(); - try - { - aCanvasShape.paint ( - g2, - bShowDescriptions, bShowNames, bShowText); - } - catch (Exception aException) - { - System.err.println ("caught exception while painting a shape:" - + aException); - aException.printStackTrace (System.err); - } - } - } - - // Paint highlighted frame around active object as the last thing. - if (maActiveObject != null) - maActiveObject.paint_highlight (g2); - } - } - - - - - /** Set up the transformation so that the graphical display can show a - centered representation of the whole screen. - */ - private void setupTransformation () - { - // Turn off scrollbars when showing the whole screen. Otherwise show them when needed. - JViewport aViewport = (JViewport)getParent(); - JScrollPane aScrollPane = (JScrollPane)aViewport.getParent(); - int nZoomMode = Options.GetInteger ("ZoomMode", WHOLE_SCREEN); - if (nZoomMode == WHOLE_SCREEN) - { - if (aScrollPane.getHorizontalScrollBarPolicy() - != JScrollPane.HORIZONTAL_SCROLLBAR_NEVER) - aScrollPane.setHorizontalScrollBarPolicy ( - JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - if (aScrollPane.getVerticalScrollBarPolicy() - != JScrollPane.VERTICAL_SCROLLBAR_NEVER) - aScrollPane.setVerticalScrollBarPolicy ( - JScrollPane.VERTICAL_SCROLLBAR_NEVER); - } - else - { - if (aScrollPane.getHorizontalScrollBarPolicy() - != JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) - aScrollPane.setHorizontalScrollBarPolicy ( - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - if (aScrollPane.getVerticalScrollBarPolicy() - != JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED) - aScrollPane.setVerticalScrollBarPolicy ( - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - } - - Dimension aScreenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension aWidgetSize = aViewport.getSize(); - { - if ((aScreenSize.getWidth() > 0) && (aScreenSize.getHeight() > 0)) - { - if (nZoomMode == WHOLE_SCREEN) - { - // Calculate the scales that would map the screen onto the - // widget in both of the coordinate axes and select the - // smaller - // of the two: it maps the screen onto the widget in both - // axes at the same time. - double nHScale = (aWidgetSize.getWidth() - 10) - / aScreenSize.getWidth(); - double nVScale = (aWidgetSize.getHeight() - 10) - / aScreenSize.getHeight(); - if (nHScale < nVScale) - mnScale = nHScale; - else - mnScale = nVScale; - } - else - { - mnScale = nZoomMode / 100.0; - } - - // Calculate offsets that center the scaled screen inside - // the widget. - mnHOffset = (aWidgetSize.getWidth() - - mnScale*aScreenSize.getWidth()) / 2.0; - mnVOffset = (aWidgetSize.getHeight() - - mnScale*aScreenSize.getHeight()) / 2.0; - if (mnHOffset < 0) - mnHOffset = 0; - if (mnVOffset < 0) - mnVOffset = 0; - - setPreferredSize (new Dimension ( - (int)(2*mnHOffset + mnScale * aScreenSize.getWidth()), - (int)(2*mnVOffset + mnScale * aScreenSize.getHeight()))); - revalidate (); - } - else - { - // In case of a degenerate (not yet initialized?) screen size - // use some meaningless default values. - mnScale = 1; - mnHOffset = 0; - mnVOffset = 0; - } - } - maLastWidgetSize = aWidgetSize; - } - - - - protected boolean HighlightObject (CanvasShape aNewActiveObject) - { - if (aNewActiveObject != maActiveObject) - { - if (maActiveObject != null) - maActiveObject.Highlight (false); - - maActiveObject = aNewActiveObject; - if (maActiveObject != null) - { - /* if (maTree != null) - { - TreePath aPath = new TreePath ( - maActiveObject.GetNode().GetPath()); - maTree.scrollPathToVisible (aPath); - maTree.setSelectionPath (aPath); - maTree.repaint (); - } - */ - maActiveObject.Highlight (true); - } - repaint (); - return true; - } - else - return false; - } - - - - - /** Called when the selection of the tree changes. Highlight the - corresponding graphical representation of the object. - */ - public void SelectObject (javax.swing.tree.TreeNode aNode) - { - CanvasShape aCanvasShape = maShapeList.Get (aNode); - HighlightObject (aCanvasShape); - } - - - - - private int - mnXAnchor, - mnYAnchor, - maResizeFlag; - private double - mnHOffset, - mnVOffset, - mnScale; - private CanvasShape maActiveObject; - private javax.swing.JTree maTree; - // The size of the widget at the last call of setupTransformation() - private Dimension maLastWidgetSize; - private ShapeContainer maShapeList; - private MouseObserver maMouseObserver; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java deleted file mode 100644 index 140590466..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java +++ /dev/null @@ -1,412 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.canvas; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.AffineTransform; -import java.awt.geom.NoninvertibleTransformException; - - -import com.sun.star.accessibility.*; -import com.sun.star.lang.EventObject; -import com.sun.star.uno.UnoRuntime; - - -class CanvasShape implements XAccessibleEventListener -{ - public final Color maHighlightColor = Color.red; - public final Color maSelectionColor = Color.green; - public final Color maFocusColor = Color.blue; - - public CanvasShape (javax.swing.tree.TreeNode aNode, Canvas aCanvas) - { - maNode = aNode; - msName = "<no name>"; - msDescription = "<no description>"; - maShape = new Rectangle2D.Double (-10,-10,10,10); - maPosition = new Point (-10,-10); - maSize = new Dimension (10,10); - maFgColor = java.awt.Color.black; - maBgColor = Color.blue; - mnRole = -1; - mbHighlighted = false; - mbSelected = false; - mbFocused = false; - maCanvas = aCanvas; - - Update (); - } - - - - - public javax.swing.tree.TreePath getNodePath (javax.swing.tree.TreeNode node) - { - javax.swing.tree.TreeNode parent = node.getParent(); - return (parent != null) ? - getNodePath(parent).pathByAddingChild(node) : - new javax.swing.tree.TreePath(node); - } - - public javax.swing.tree.TreePath getNodePath () - { - return getNodePath(maNode); - } - - - - /** Update the data obtained from the <type>AccessibilityNode</type> - object. - */ - public void Update () - { - if (maNode instanceof XAccessible) { - mxContext = ((XAccessible) maNode).getAccessibleContext(); - mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface( - XAccessibleComponent.class, mxContext); - } - - if (mxContext != null) - { - msName = mxContext.getAccessibleName(); - msDescription = mxContext.getAccessibleDescription(); - mnRole = mxContext.getAccessibleRole(); - - // Extract the selected and focused flag. - XAccessibleStateSet xStateSet = mxContext.getAccessibleStateSet (); - if (xStateSet != null) - { - mbSelected = xStateSet.contains (AccessibleStateType.SELECTED); - mbFocused = xStateSet.contains (AccessibleStateType.FOCUSED); - } - } - - UpdateGeometry (); - - if (mxComponent != null) - { - // Note: alpha values in office 0..255 have to be mapped to - // 255..0 in Java - Color aCol = new Color (mxComponent.getForeground(), true); - maFgColor = new Color (aCol.getRed (), - aCol.getGreen (), - aCol.getBlue (), - 0xff - aCol.getAlpha ()); - aCol = new Color (mxComponent.getBackground(), true); - maBgColor = new Color (aCol.getRed (), - aCol.getGreen (), - aCol.getBlue (), - 0xff - aCol.getAlpha ()); - } - } - - - - public void UpdateGeometry () - { - if (mxComponent != null) - { - com.sun.star.awt.Point aLocationOnScreen = - mxComponent.getLocationOnScreen(); - com.sun.star.awt.Size aSizeOnScreen = mxComponent.getSize(); - maPosition = new Point ( - aLocationOnScreen.X, - aLocationOnScreen.Y); - maSize = new Dimension ( - aSizeOnScreen.Width, - aSizeOnScreen.Height); - } - } - - - - /** Paint the object into the specified canvas. It is transformed - according to the specified offset and scale. - */ - public void paint ( - Graphics2D g, - boolean bShowDescription, - boolean bShowName, - boolean bShowText) - { - try{ - // Transform the object's position and size according to the - // specified offset and scale. - Point aLocation = new Point(); - maShape = new Rectangle2D.Double ( - maPosition.x, - maPosition.y, - maSize.width, - maSize.height); - maTransformation = g.getTransform(); - - // Fill the object's bounding box with its background color if it - // has no children. - if (mxContext.getAccessibleChildCount() == 0) - { - g.setColor (maBgColor); - g.fill (maShape); - } - - // Remove alpha channel from color before drawing the frame. - Color color = maFgColor; - if (maFgColor.getAlpha()<128) - color = new Color (maFgColor.getRed(), maFgColor.getGreen(), maFgColor.getBlue()); - g.setColor (color); - g.draw (maShape); - - if (mbFocused) - { - g.setColor (maFocusColor); - for (int x=0; x<=2; x++) - for (int y=0; y<=2; y++) - g.fill ( - new Rectangle2D.Double ( - maShape.x + x/2.0 * maShape.width-3, - maShape.y + y/2.0 * maShape.height-3, - 6, - 6)); - } - if (mbSelected) - { - g.setColor (maSelectionColor); - for (int x=0; x<=2; x++) - for (int y=0; y<=2; y++) - g.draw ( - new Rectangle2D.Double ( - maShape.x + x/2.0 * maShape.width-2, - maShape.y + y/2.0 * maShape.height-2, - 4, - 4)); - } - - // Write the object's text OR name and description. - g.setColor (maFgColor); - if (bShowName) - paintName (g); - if (bShowDescription) - paintDescription (g); - if (bShowText) - paintText (g); - } - catch (Exception e) - { // don't care - } - } - - - public void paint_highlight (Graphics2D g) - { - if (mbHighlighted) - g.setColor (maHighlightColor); - else - g.setColor (maFgColor); - g.draw (maShape); - } - - - - - private void paintName (Graphics2D g) - { - g.drawString ("Name: " + msName, - (float)maShape.x+5, - (float)maShape.y+15); - } - - - - private void paintDescription (Graphics2D g) - { - g.drawString ("Description: " + msDescription, - (float)maShape.x+5, - (float)maShape.y+35); - } - - - - - private void paintText (Graphics2D g) - { - XAccessibleText xText = null; - // get XAccessibleText - xText = (XAccessibleText)UnoRuntime.queryInterface( - XAccessibleText.class, mxContext); - - // Draw every character in the text string. - if (xText != null) - { - String sText = xText.getText(); - try - { - for(int i = 0; i < sText.length(); i++) - { - com.sun.star.awt.Rectangle aRect = - xText.getCharacterBounds(i); - - double x = maShape.x + aRect.X; - double y = maShape.y + aRect.Y + aRect.Height; - - g.drawString (sText.substring(i, i+1), (float)x, (float)y); - } - } - catch (com.sun.star.lang.IndexOutOfBoundsException e) - {} - } - } - - - /** Compute whether the specified point lies inside the object's - bounding box. - */ - public boolean Contains (int x, int y) - { - Point2D aPosition = new Point2D.Double (x,y); - try - { - maTransformation.inverseTransform (aPosition, aPosition); - // System.out.println ("transformed "+x+","+y+" to "+aPosition); - } - catch (NoninvertibleTransformException aException) - { - return false; - } - return (maShape.contains (aPosition)); - } - - public void Highlight (boolean bFlag) - { - mbHighlighted = bFlag; - } - - public boolean IsHighlighted () - { - return mbHighlighted; - } - - public Rectangle GetBBox () - { - return new Rectangle (maPosition, maSize); - } - - public Point getOrigin () - { - return maPosition; - } - - public Dimension GetSize () - { - return maSize; - } - - public int getRole () - { - return mnRole; - } - - public XAccessibleContext getContext () - { - return mxContext; - } - - public XAccessibleComponent getComponent () - { - return mxComponent; - } - - public String toString () - { - return ">"+msName+", "+msDescription+" +"+maPosition.x+"+"+maPosition.y - +"x"+maSize.width+"x"+maSize.height+"<"; - } - - /** */ - public void notifyEvent(com.sun.star.accessibility.AccessibleEventObject aEvent) { - try { - switch (aEvent.EventId) { - case AccessibleEventId.BOUNDRECT_CHANGED: - case AccessibleEventId.VISIBLE_DATA_CHANGED: - UpdateGeometry (); - maCanvas.repaint(); - break; - default: - break; - } - } catch (Exception aException) { - System.err.println ("caught exception while updating a shape:" - + aException); - aException.printStackTrace (System.err); - } - } - - /** Callback for disposing events. - */ - public void disposing (com.sun.star.lang.EventObject e) - { - System.out.println ("Disposing"); - } - - - - - private Canvas - maCanvas; - private javax.swing.tree.TreeNode - maNode; - private XAccessibleContext - mxContext; - private XAccessibleComponent - mxComponent; - private String - msDescription, - msName; - private Rectangle2D.Double maShape; - private AffineTransform maTransformation; - private Point maPosition; - private Dimension - maTransformedSize, - maSize; - private Color - maFgColor, - maBgColor; - private boolean - // Highlighting objects is an internal concept. Corresponds to selection in the tree view. - mbHighlighted, - // Set when the accessible object is selected. - mbSelected, - // Set when the accessible object is focused. - mbFocused; - private int - mnRole; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile deleted file mode 100644 index 078ac7ee4..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all : package - -ROOT=../../../../.. -PACKAGE = org.openoffice.accessibility.awb.canvas -SUBDIRS = -include makefile.common - -include $(ROOT)/makefile.in - - -package : $(CLASS_FILES) - - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java deleted file mode 100644 index c2468ec38..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.openoffice.accessibility.awb.canvas; - -import java.awt.Dimension; -import java.awt.event.InputEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.util.Iterator; -import javax.swing.tree.TreePath; - - -/** Observe the mouse and highlight shapes of the canvas when clicked. -*/ -public class MouseObserver - implements MouseListener, - MouseMotionListener -{ - public MouseObserver (Canvas aCanvas) - { - maCanvas = aCanvas; - maCanvas.addMouseListener (this); - maCanvas.addMouseMotionListener (this); - } - - - public void SetTree (javax.swing.JTree aTree) - { - maTree = aTree; - } - - public void mouseClicked (MouseEvent e) - {} - - public void mousePressed (MouseEvent e) - { - CanvasShape aObjectUnderMouse = FindCanvasShapeUnderMouse (e); - maTree.clearSelection(); - if (aObjectUnderMouse != null) - { - TreePath aPath = aObjectUnderMouse.getNodePath(); - if ((e.getModifiers() & InputEvent.CTRL_MASK) != 0) - maTree.expandPath (aPath); - // Selecting the entry will eventually highlight the shape. - maTree.setSelectionPath (aPath); - maTree.makeVisible (aPath); - } - } - - public void mouseReleased (MouseEvent e) - {} - - public void mouseEntered (MouseEvent e) - {} - - public void mouseExited (MouseEvent e) - {} - - public void mouseDragged (MouseEvent e) - { - } - - public void mouseMoved (MouseEvent e) - { - if ((e.getModifiers() & InputEvent.SHIFT_MASK) != 0) - maCanvas.HighlightObject (FindCanvasShapeUnderMouse (e)); - } - - - /** Search for the smallest shape that contains the mouse position. - */ - protected CanvasShape FindCanvasShapeUnderMouse (MouseEvent e) - { - Dimension aSmallestSize = null; - Iterator maShapeIterator = maCanvas.GetShapeIterator(); - CanvasShape aShapeUnderMouse = null; - while (maShapeIterator.hasNext()) - { - CanvasShape aShape = (CanvasShape)maShapeIterator.next(); - if (aShape != null) - if (aShape.Contains (e.getX(),e.getY())) - { - if (aShapeUnderMouse == null) - { - aSmallestSize = aShape.GetSize(); - aShapeUnderMouse = aShape; - } - else - { - Dimension aSize = aShape.GetSize(); - if (aSize.getWidth()<aSmallestSize.getWidth() - || aSize.getHeight()<aSmallestSize.getHeight()) - { - aSmallestSize = aSize; - aShapeUnderMouse = aShape; - } - } - } - } - return aShapeUnderMouse; - } - - private Canvas maCanvas; - private javax.swing.JTree maTree; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java deleted file mode 100644 index 86e92cafe..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java +++ /dev/null @@ -1,237 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.canvas; - -import java.awt.Rectangle; -import java.util.Iterator; -import javax.swing.event.TreeModelListener; -import javax.swing.event.TreeExpansionListener; -import javax.swing.event.TreeWillExpandListener; -import javax.swing.event.TreeExpansionEvent; -import javax.swing.event.TreeModelEvent; -import javax.swing.tree.TreeNode; - -import com.sun.star.accessibility.XAccessibleEventBroadcaster; - -/** Each canvas has a shape container that is responsible for maintaining - a collection of shapes that are displayed by the canvas. -*/ -public class ShapeContainer - implements TreeModelListener, - TreeExpansionListener, - TreeWillExpandListener -{ - public ShapeContainer (Canvas aCanvas) - { - maShapeList = new java.util.Hashtable(); - maBoundingBox = new Rectangle (0,0,100,100); - maCanvas = aCanvas; - maTree = null; - } - - - - - public synchronized void SetTree (javax.swing.JTree aTree) - { - if (aTree != maTree) - { - if (maTree != null) - { - maTree.getModel().removeTreeModelListener (this); - maTree.removeTreeExpansionListener (this); - maTree.removeTreeWillExpandListener (this); - } - - Clear(); - - maTree = aTree; - - maTree.getModel().addTreeModelListener (this); - maTree.addTreeExpansionListener (this); - maTree.addTreeWillExpandListener (this); - } - } - - - - - public synchronized boolean AddNode (TreeNode aNode) - { - CanvasShape aShape = (CanvasShape)maShapeList.get (aNode); - if (aShape == null) - { - aShape = new CanvasShape (aNode, maCanvas); - - if (aNode instanceof XAccessibleEventBroadcaster) - ((XAccessibleEventBroadcaster) aNode).addEventListener(aShape); - - // Update bounding box that includes all objects. - if (maShapeList.size() == 0) - maBoundingBox = aShape.GetBBox(); - else - maBoundingBox = maBoundingBox.union (aShape.GetBBox()); - - maShapeList.put (aNode, aShape); - - maCanvas.repaint(); - - return true; - } - else - return false; - } - - - /** - */ - public synchronized boolean RemoveNode (TreeNode aNode) - { - CanvasShape aShape = (CanvasShape)maShapeList.get (aNode); - if (aShape != null) - { - if (aNode instanceof XAccessibleEventBroadcaster) - ((XAccessibleEventBroadcaster) aNode).removeEventListener(aShape); - - maShapeList.remove (aNode); - maCanvas.SelectObject (null); - maCanvas.repaint (); - return true; - } - else - return false; - } - - - - - public synchronized void Clear () - { - maShapeList.clear (); - } - - - - - public Iterator GetIterator () - { - return maShapeList.values().iterator (); - } - - - - - public CanvasShape Get (TreeNode aNode) - { - if (aNode != null) { - return (CanvasShape)maShapeList.get (aNode); - } - return null; - } - - - private void PrintMessage (String aMessage, java.util.EventObject aEvent) - { - // System.out.println ("ShapeContainer: " + aMessage + ": " + aEvent); - } - - public void treeNodesChanged (TreeModelEvent aEvent) - { - PrintMessage ("treeNodesChanged", aEvent); - } - public void treeNodesInserted (TreeModelEvent aEvent) - { - PrintMessage ("treeNodesInserted", aEvent); - Object[] aNewNodes = aEvent.getChildren(); - for (int i=0; i<aNewNodes.length; i++) - AddNode ((TreeNode)aNewNodes[i]); - } - public void treeNodesRemoved (TreeModelEvent aEvent) - { - PrintMessage ("treeNodesRemoved", aEvent); - Object[] aOldNodes = aEvent.getChildren(); - for (int i=0; i<aOldNodes.length; i++) - RemoveNode ((TreeNode)aOldNodes[i]); - } - public void treeStructureChanged (TreeModelEvent aEvent) - { - PrintMessage ("treeStructureChanged", aEvent); - TreeNode aNode = (TreeNode)aEvent.getTreePath().getLastPathComponent(); - RemoveAllChildren(aNode); - AddAllChildren(aNode); - } - - public void treeWillExpand (TreeExpansionEvent aEvent) - { - PrintMessage ("treeWillExpand", aEvent); - } - public void treeWillCollapse (TreeExpansionEvent aEvent) - { - PrintMessage ("treeWillCollapse", aEvent); - TreeNode aNode = (TreeNode)aEvent.getPath().getLastPathComponent(); - RemoveAllChildren (aNode); - } - public void treeExpanded (TreeExpansionEvent aEvent) - { - PrintMessage ("treeExpanded", aEvent); - TreeNode aNode = (TreeNode)aEvent.getPath().getLastPathComponent(); - AddAllChildren (aNode); - } - public void treeCollapsed (TreeExpansionEvent aEvent) - { - PrintMessage ("treeCollapsed", aEvent); - } - - private void AddAllChildren (TreeNode aNode) { - java.util.Enumeration aChildList = aNode.children(); - while (aChildList.hasMoreElements()) { - TreeNode aChild = (TreeNode) aChildList.nextElement(); - if (aChild != null) { - AddAllChildren (aChild); - AddNode (aChild); - } - } - } - - private void RemoveAllChildren (TreeNode aNode) { - java.util.Enumeration aChildList = aNode.children(); - while (aChildList.hasMoreElements()) { - TreeNode aChild = (TreeNode) aChildList.nextElement(); - if (aChild != null) { - RemoveAllChildren (aChild); - RemoveNode (aChild); - } - } - } - - - private java.util.Hashtable maShapeList; - private Rectangle maBoundingBox; - private Canvas maCanvas; - private javax.swing.JTree maTree; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common deleted file mode 100644 index df47f1bc8..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common +++ /dev/null @@ -1,34 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JARFILES = jurt.jar unoil.jar ridl.jar -JAVAFILES = \ - CanvasShape.java \ - Canvas.java \ - MouseObserver.java \ - ShapeContainer.java - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk deleted file mode 100644 index d2feccfb8..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk +++ /dev/null @@ -1,47 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/..$/.. -TARGET = awb_canvas -PACKAGE = org$/openoffice$/accessibility$/awb$/canvas - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" -.INCLUDE : makefile.common -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) -JARCLASSDIRS = $(PACKAGE) org/openoffice/java/accessibility/awb -.ENDIF - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk diff --git a/accessibility/workben/org/openoffice/accessibility/awb/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/makefile.common deleted file mode 100644 index 0bf38a0fa..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/makefile.common +++ /dev/null @@ -1,30 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JAVAFILES = \ - AccessibilityWorkBench.java \ - HelpWindow.java diff --git a/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk deleted file mode 100644 index a07d631d6..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk +++ /dev/null @@ -1,57 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/.. -TARGET = java_awb -PACKAGE = org$/openoffice$/accessibility$/awb - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" -JARFILES = jurt.jar unoil.jar ridl.jar - -.INCLUDE : makefile.common - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE -JARCLASSDIRS = $(PACKAGE) \ - org$/openoffice$/accessibility$/misc -CUSTOMMANIFESTFILE = manifest -.ENDIF - -# --- Targets ------------------------------------------------------ - - -.INCLUDE : target.mk - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/manifest b/accessibility/workben/org/openoffice/accessibility/awb/manifest deleted file mode 100644 index 36111c540..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/manifest +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Main-Class: org.openoffice.accessibility.awb.AccessibilityWorkBench -Class-Path: classes.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar xt.jar jaxp.jar diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java deleted file mode 100644 index fa9afae92..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java +++ /dev/null @@ -1,154 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import javax.swing.SwingUtilities; -import javax.swing.tree.TreeNode; -import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.DefaultMutableTreeNode; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.awt.XTopWindow; -import com.sun.star.awt.XTopWindowListener; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEventBroadcaster; -import com.sun.star.accessibility.XAccessibleEventListener; - -/** - * - */ -public abstract class AccessibilityModel extends javax.swing.tree.DefaultTreeModel { - - protected java.util.Hashtable nodeList; - protected static DefaultMutableTreeNode disconnectedRootNode = - new DefaultMutableTreeNode("<not connected>"); - - /** Creates a new instance of AccessibilityModel */ - public AccessibilityModel() { - super(disconnectedRootNode, false); - nodeList = new java.util.Hashtable(); - } - - /* Convenience method that creates a new Toolkit node from xToolkit - * and sets as the new root object of the tree. - */ - public synchronized void setRoot(XExtendedToolkit xToolkit) { - if (xToolkit != null) { - try { - // remove old root node as topwindow listener - if (getRoot() instanceof ToolkitNode) { - ToolkitNode tn = (ToolkitNode) getRoot(); - if (tn.xToolkit != null) { - tn.xToolkit.removeTopWindowListener(tn); - } - } - nodeList.clear(); - setRoot(new ToolkitNode(xToolkit, this)); - xToolkit.addTopWindowListener((ToolkitNode) getRoot()); - } catch (com.sun.star.uno.RuntimeException e) { - // FIXME: error message ! - } - } - } - - /* Appends the new child to parent's child list */ - public void addNodeInto(MutableTreeNode newChild, MutableTreeNode parent) { - int index = parent.getChildCount(); - if (newChild != null && newChild.getParent() == parent) { - index -= 1; - } - insertNodeInto(newChild, parent, index); - } - - /** Adds listener to the listener chain of node */ - public static void addEventListener(TreeNode node, XAccessibleEventListener listener) { - if (node instanceof AccessibilityNode) { - ((AccessibilityNode) node).addEventListener(listener); - } - } - - /** Removes listener from the listener chain of node */ - public static void removeEventListener(TreeNode node, XAccessibleEventListener listener) { - if (node instanceof AccessibilityNode) { - ((AccessibilityNode) node).removeEventListener(listener); - } - } - - protected abstract AccessibilityNode createWindowNode(XAccessible xAccessible, - XAccessibleContext xAccessibleContext); - protected abstract AccessibilityNode createNode(XAccessible xAccessible); - - /** Adds xAccessible,node to the internal hashtable */ - public AccessibilityNode putNode(XAccessible xAccessible, AccessibilityNode node) { - if (xAccessible != null) { - String oid = UnoRuntime.generateOid(xAccessible); - java.lang.ref.WeakReference ref = (java.lang.ref.WeakReference) - nodeList.put(oid, new java.lang.ref.WeakReference(node)); - if (ref != null) { - return (AccessibilityNode) ref.get(); - } - } - return null; - } - - /** Returns the AccessibilityNode for xAccessible */ - public AccessibilityNode findNode(XAccessible xAccessible) { - if (xAccessible != null) { - String oid = UnoRuntime.generateOid(xAccessible); - java.lang.ref.WeakReference ref = - (java.lang.ref.WeakReference) nodeList.get(oid); - if (ref != null) { - return (AccessibilityNode) ref.get(); - } - } - return null; - } - - /** Removes the AccessibilityNode for xAccessible from the internal hashtable */ - public AccessibilityNode removeNode(XAccessible xAccessible) { - if (xAccessible != null) { - String oid = UnoRuntime.generateOid(xAccessible); - java.lang.ref.WeakReference ref = - (java.lang.ref.WeakReference) nodeList.remove(oid); - if (ref != null) { - return (AccessibilityNode) ref.get(); - } - } - return null; - } - - public AccessibilityNode removeNode(Object o) { - if (o instanceof XAccessible) { - return removeNode((XAccessible) o); - } - return null; - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java deleted file mode 100644 index 4ca87d616..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java +++ /dev/null @@ -1,163 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import org.openoffice.accessibility.misc.AccessibleEventMulticaster; - -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.SwingUtilities; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEventBroadcaster; -import com.sun.star.accessibility.XAccessibleEventListener; - -import com.sun.star.uno.UnoRuntime; - -class AccessibilityNode extends DefaultMutableTreeNode implements XAccessible, - XAccessibleEventListener, XAccessibleEventBroadcaster { - - protected AccessibilityModel treeModel; - protected XAccessibleContext unoAccessibleContext; - - private XAccessibleEventListener listener; - - public AccessibilityNode(AccessibilityModel treeModel) { - this.treeModel = treeModel; - } - - protected void finalize() throws java.lang.Throwable { - if (userObject != null) { - treeModel.removeNode(userObject); - } - } - - /** Sets the XAccessibleContext object of this node */ - public void setAccessibleContext(XAccessibleContext xAccessibleContext) { - unoAccessibleContext = xAccessibleContext; - } - - /** Returns the XAccessibleContext object of this node */ - public XAccessibleContext getAccessibleContext() { - return unoAccessibleContext; - } - - /** Attaches or Detaches the itself as listener to unoAccessibleContext */ - protected void setAttached(boolean attach) { - XAccessibleContext xAccessibleContext = unoAccessibleContext; - if (xAccessibleContext != null) { - try { - XAccessibleEventBroadcaster xAccessibleEventBroadcaster = - UnoRuntime.queryInterface( XAccessibleEventBroadcaster.class, xAccessibleContext ); - if (xAccessibleEventBroadcaster != null) { - if (attach) { - xAccessibleEventBroadcaster.addEventListener(this); - } else { - xAccessibleEventBroadcaster.removeEventListener(this); - } - } - } catch (com.sun.star.uno.RuntimeException e) { - // FIXME: error message ! - } - } - } - - public void disposing(com.sun.star.lang.EventObject eventObject) { - XAccessibleEventListener localListener = this.listener; - if (localListener != null) { - localListener.disposing(eventObject); - } - - treeModel.removeNode(userObject); - userObject = null; - unoAccessibleContext = null; - // FIXME: mark the object as being disposed in the tree view ! - } - - protected void handleChildRemoved(XAccessible xAccessible) { - final AccessibilityNode node = treeModel.findNode(xAccessible); - if (node != null) { - SwingUtilities.invokeLater(new java.lang.Runnable() { - public void run() { - treeModel.removeNodeFromParent(node); - } - }); - } - } - - protected void handleChildAdded(XAccessible xAccessible) { - final AccessibilityNode parent = this; - final AccessibilityNode node = treeModel.createNode(xAccessible); - if (node != null) { - SwingUtilities.invokeLater(new java.lang.Runnable() { - public void run() { - try { - XAccessibleContext xAC = node.getAccessibleContext(); - if (xAC != null) { - treeModel.insertNodeInto(node, parent, - xAC.getAccessibleIndexInParent()); - } - } catch (com.sun.star.uno.RuntimeException e) { - // FIXME: output - } - } - }); - } - } - - public void notifyEvent(AccessibleEventObject accessibleEventObject) { - if (accessibleEventObject.EventId == AccessibleEventId.CHILD) { - XAccessible xAccessible = UnoRuntime.queryInterface( XAccessible.class, accessibleEventObject.OldValue ); - if (xAccessible != null) { - handleChildRemoved(xAccessible); - } - - xAccessible = UnoRuntime.queryInterface( XAccessible.class, accessibleEventObject.NewValue ); - if (xAccessible != null) { - handleChildAdded(xAccessible); - } - } - - XAccessibleEventListener localListener = this.listener; - if (localListener != null) { - localListener.notifyEvent(accessibleEventObject); - } - } - - public synchronized void addEventListener(com.sun.star.accessibility.XAccessibleEventListener xAccessibleEventListener) { - listener = AccessibleEventMulticaster.add(listener, xAccessibleEventListener); - } - - public synchronized void removeEventListener(com.sun.star.accessibility.XAccessibleEventListener xAccessibleEventListener) { - listener = AccessibleEventMulticaster.remove(listener, xAccessibleEventListener); - } -} - - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java deleted file mode 100644 index 59257702c..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java +++ /dev/null @@ -1,89 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import org.openoffice.accessibility.misc.NameProvider; - -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.DefaultMutableTreeNode; - -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; - -/** - * - */ -public class AccessibilityTree extends javax.swing.JTree { - - /** Creates a new instance of AccessibilityTree */ - public AccessibilityTree(javax.swing.tree.TreeModel model) { - super(model); - // always show handles to indicate expandable / collapsable - showsRootHandles = true; - } - - public void setToolkit(XExtendedToolkit xToolkit) { - AccessibilityModel model = (AccessibilityModel) getModel(); - if (model != null) { - // hide the root node when connected - setRootVisible(xToolkit == null); - // update the root node - model.setRoot(xToolkit); - model.reload(); - } - } - - public String convertValueToText(Object value, boolean selected, - boolean expanded, boolean leaf, int row, boolean hasFocus) { - - if (value instanceof DefaultMutableTreeNode) { - DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; - - Object userObject = node.getUserObject(); - if (userObject != null && userObject instanceof XAccessible) { - XAccessible xAccessible = (XAccessible) userObject; - try { - XAccessibleContext xAC = xAccessible.getAccessibleContext(); - if (xAC != null) { - String name = xAC.getAccessibleName(); - if (name.length() == 0) { - name = new String ("<no name>"); - } - value = name + " / " + NameProvider.getRoleName(xAC.getAccessibleRole()); - } - } catch (com.sun.star.uno.RuntimeException e) { - value = "???"; - } - } - } - - return super.convertValueToText(value, selected, expanded, leaf, row, hasFocus); - } - -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java deleted file mode 100644 index ad59cf8c9..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java +++ /dev/null @@ -1,217 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import com.sun.star.accessibility.XAccessible; -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.lang.DisposedException; -import com.sun.star.lang.IndexOutOfBoundsException; - -import org.openoffice.accessibility.misc.OfficeConnection; -import org.openoffice.accessibility.awb.event.EventQueue; - -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeNode; - - -public class AccessibilityTreeModel - extends DefaultTreeModel -{ - public AccessibilityTreeModel () - { - super (null); - setAsksAllowsChildren (false); - - SetRootNode(); - } - - - - /** Release all resources. - */ - synchronized public void Dispose () - { - Clear (); - } - - - - /** Calls to this method are dispatched to the given node but are - observed for exceptions. - */ - synchronized public boolean isLeaf (Object aObject) - { - boolean bIsLeaf = true; - - if (aObject != null) - { - AccessibilityNode aNode = (AccessibilityNode)aObject; - try - { - bIsLeaf = aNode.isLeaf(); - } - catch (DisposedException aException) - { - System.out.println ("node is disposed. removing it"); - /* TreeNode aParent = aNode.GetParent(); - int nIndexInParent = aParent.getIndex (aNode); - aNode.removeFromParent (); - System.out.println ("" + aParent + " # " + aNode + " # "+ nIndexInParent); - nodesWereRemoved ( - aParent, new int[]{nIndexInParent}, new - Object[]{aNode}); - */ - } - catch (Exception aException) - { - System.err.println ("caught exception in AccessibilityTreeModel.isLeaf():" - + aException); - aException.printStackTrace (System.err); - } - } - - return bIsLeaf; - } - - - - - synchronized public int getChildCount (Object aObject) - { - AccessibilityNode aNode = (AccessibilityNode)aObject; - return aNode.getChildCount(); - } - - - - - /** Return the requested child of aParent. If that child is not yet - known to the parent then try to create it. - */ - synchronized public Object getChild (Object aParent, final int nIndex) - { - AccessibilityNode aChild = null; - - final AccessibilityNode aParentNode = (AccessibilityNode)aParent; - - // Try to get an existing child from the super class object. - aChild = aParentNode.GetChildNoCreate (nIndex); - - // When the requested child does not yet exist and this node is not a - // special node then create a new node. - if (aChild == null) - { - aChild = aParentNode.CreateChild (nIndex); - aParentNode.SetChild ((AccessibilityNode)aChild, nIndex); - /* EventQueue.Instance().AddEvent (new Runnable() { public void run() { - AccessibilityTreeModel.this.nodeWasInserted ( - aParentNode, nIndex); - }}); - */ } - - return aChild; - } - - - synchronized public void nodeWasInserted (AccessibilityNode aParent, int nIndex) - { - nodesWereInserted (aParent, new int[]{nIndex}); - nodeStructureChanged (aParent); - - } - - - - - /** Clear the tree so that afterwards it has only the root node. - */ - public void Clear () - { - AccessibilityNode aRoot = (AccessibilityNode)getRoot(); - aRoot.RemoveAllChildren(); - SetRootNode(); - nodeStructureChanged (aRoot); - } - - - - - private void SetRootNode () - { - OfficeConnection aConnection = OfficeConnection.Instance(); - AccessibilityNode aRoot; - if (aConnection!=null && aConnection.IsValid()) - aRoot = new AccessibilityNode ("<connected>"); - else - aRoot = new AccessibilityNode ("<not connected>"); - setRoot (aRoot); - } - - - - - /** Add a new child to the root node. - */ - public synchronized void AddTopLevelNode (AccessibilityNode aNode) - { - if (aNode != null) - { - if ( ! OfficeConnection.Instance().IsValid()) - { - setRoot (null); - } - - AccessibilityNode aRoot = (AccessibilityNode)getRoot(); - if (aRoot == null) - { - aRoot = new AccessibilityNode ("<connected>"); - setRoot (aRoot); - } - - aNode.SetParent (aRoot); - aRoot.Append (aNode); - nodesWereInserted (aRoot, new int[]{aRoot.getIndex (aNode)}); - } - } - - - - - /** Remove a node that is a direct child of the root. - */ - public synchronized void RemoveTopLevelNode (AccessibilityNode aNode) - { - AccessibilityNode aRoot = (AccessibilityNode)getRoot(); - if (aRoot != null) - { - int nIndex = aRoot.getIndex (aNode); - aRoot.Remove (aNode); - nodesWereRemoved (aRoot, new int[]{nIndex}, new Object[]{aNode}); - } - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java deleted file mode 100644 index a0037ba69..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java +++ /dev/null @@ -1,123 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import javax.swing.tree.TreeNode; -import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.event.TreeExpansionListener; -import javax.swing.event.TreeWillExpandListener; - -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; - -/** - * - */ -public class DynamicAccessibilityModel extends AccessibilityModel implements TreeExpansionListener, TreeWillExpandListener { - - /* Creates a AccessibilityNode object for a window */ - protected AccessibilityNode createWindowNode(XAccessible xAccessible, - XAccessibleContext xAccessibleContext) { - if (xAccessible != null) { - // Some objects inherit XAccessible, but should not appear in - // the hierarchy as toplevels (like sub-menus), so they don't - // return an accessible context. - if (xAccessibleContext != null) { - AccessibilityNode node = new AccessibilityNode(this); - node.setUserObject(xAccessible); - node.setAccessibleContext(xAccessibleContext); - putNode(xAccessible, node); - return node; - } - } - return null; - } - - /* Creates a DynamicAccessibilityNode object */ - protected AccessibilityNode createNode(XAccessible xAccessible) { - if (xAccessible != null) { - try { - // Some objects inherit XAccessible, but should not appear in - // the hierarchy as toplevels (like sub-menus), so they don't - // return an accessible context. - XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext(); - if (xAccessibleContext != null) { - AccessibilityNode node = new DynamicAccessibilityNode(this); - node.setUserObject(xAccessible); - node.setAccessibleContext(xAccessibleContext); - putNode(xAccessible, node); - return node; - } - } catch (com.sun.star.uno.RuntimeException e) { - } - } - return null; - } - - public void treeCollapsed(javax.swing.event.TreeExpansionEvent treeExpansionEvent) { - TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent(); - if (node instanceof DynamicAccessibilityNode) { - DynamicAccessibilityNode dynode = (DynamicAccessibilityNode) node; - dynode.clear(); - } - } - - public void treeExpanded(javax.swing.event.TreeExpansionEvent treeExpansionEvent) { - TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent(); - if (node instanceof AccessibilityNode) { - // Calling oneway methods from an UNO thread may cause - // deadlocks, so adding the listeners here. - for (java.util.Enumeration e = node.children(); e.hasMoreElements(); ) { - ((AccessibilityNode) e.nextElement()).setAttached(true); - } - } - } - - public void treeWillCollapse(javax.swing.event.TreeExpansionEvent treeExpansionEvent) - throws javax.swing.tree.ExpandVetoException { - TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent(); - if (node instanceof AccessibilityNode) { - // Calling oneway methods from an UNO thread may cause - // deadlocks, so adding the listeners here. - for (java.util.Enumeration e = node.children(); e.hasMoreElements(); ) { - ((AccessibilityNode) e.nextElement()).setAttached(false); - } - } - } - - public void treeWillExpand(javax.swing.event.TreeExpansionEvent treeExpansionEvent) - throws javax.swing.tree.ExpandVetoException { - TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent(); - if (node instanceof DynamicAccessibilityNode) { - DynamicAccessibilityNode dynode = (DynamicAccessibilityNode) node; - dynode.populate(); - } - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java deleted file mode 100644 index da6f10c96..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java +++ /dev/null @@ -1,92 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; - -/* - * This class is dynamic in the way that it does not contain any children - * until the node is going to be expanded. It also releases all children - * as soon as the node is collapsed again. - */ -class DynamicAccessibilityNode extends AccessibilityNode { - - public DynamicAccessibilityNode(AccessibilityModel treeModel) { - super(treeModel); - } - - // Populates the child list. Called by AccessibilityMode.treeWillExpand(). - protected void populate() { - try { - XAccessibleContext xAC = getAccessibleContext(); - if (xAC != null) { - int n = xAC.getAccessibleChildCount(); - for (int i=0; i<n; i++) { - XAccessible xAccessible = xAC.getAccessibleChild(i); - AccessibilityNode node = treeModel.findNode(xAccessible); - if (node == null) { - node = treeModel.createNode(xAccessible); - } - if (node != null) { - // NOTE: do not send any tree notifications here ! - add(node); - } - } - } - } catch (com.sun.star.lang.IndexOutOfBoundsException e) { - // This should never happen since we previously checked the child - // count. - // FIXME: error message - } catch (com.sun.star.uno.RuntimeException e) { - // FIXME: error message - } - } - - // Clears the child list. Called by AccessibilityModel.treeCollapsed(). - protected void clear() { - removeAllChildren(); - } - - /* This is called whenever the node is painted, no matter if collapsed - * or expanded. Making this a "life" value seems to be appropriate. - */ - public boolean isLeaf() { - try { - XAccessibleContext xAC = getAccessibleContext(); - if (xAC != null) { - return xAC.getAccessibleChildCount() == 0; - } - return true; - } catch (com.sun.star.uno.RuntimeException e) { - return true; - } - } - -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile deleted file mode 100644 index 579b8822c..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -all : package - -ROOT=../../../../.. -PACKAGE = org.openoffice.accessibility.awb.tree -SUBDIRS = -include makefile.common - -include $(ROOT)/makefile.in - - -package : $(CLASS_FILES) - - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java deleted file mode 100644 index 2599dfc7f..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java +++ /dev/null @@ -1,215 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.tree; - -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; - -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.awt.XTopWindow; - -import com.sun.star.uno.UnoRuntime; - -import javax.swing.SwingUtilities; -import javax.swing.tree.DefaultMutableTreeNode; - -/** - * - */ -public class ToolkitNode extends DefaultMutableTreeNode - implements com.sun.star.awt.XTopWindowListener { - - protected XExtendedToolkit xToolkit; - - private AccessibilityModel treeModel; - - /** Creates a new instance of TopWindowListener */ - public ToolkitNode(XExtendedToolkit xToolkit, AccessibilityModel treeModel) { - super("<connected>"); - this.xToolkit = xToolkit; - this.treeModel = treeModel; - - // Initially fill the child list - try { - for (int i=0,j=xToolkit.getTopWindowCount(); i<j; i++) { - XTopWindow xTopWindow = xToolkit.getTopWindow(i); - if (xTopWindow != null) { - AccessibilityNode an = getTopWindowNode(xTopWindow); - if (an != null) { - add(an); - // Calling oneway methods from an UNO thread may cause - // deadlocks, so adding the listeners here. - an.setAttached(true); - } - } - } - } catch (com.sun.star.lang.IndexOutOfBoundsException e) { - // This should never happen since we properly check the count - // before - anyway returning what we got so far. - } - } - - /** Returns an AccessibilityNode if xAccessible has a valid toplevel */ - private AccessibilityNode getTopWindowNode(XAccessible xAccessible) { - XAccessibleContext xAC = xAccessible.getAccessibleContext(); - if (xAC != null) { - short role = xAC.getAccessibleRole(); - if ((role == AccessibleRole.FRAME) || (role == AccessibleRole.DIALOG) || (role == AccessibleRole.WINDOW)) { - return treeModel.createWindowNode(xAccessible, xAC); - } - } - return null; - } - - /** Returns an AccessibilityNode if xAccessible has a valid toplevel */ - private AccessibilityNode getTopWindowNode(XAccessible xAccessible, XAccessibleContext xAC) { - if (xAC != null) { - short role = xAC.getAccessibleRole(); - if ((role == AccessibleRole.FRAME) || (role == AccessibleRole.DIALOG) || (role == AccessibleRole.WINDOW)) { - AccessibilityNode parent = treeModel.createWindowNode(xAccessible, xAC); - if (parent != null) { - try { - int n = xAC.getAccessibleChildCount(); - for (int i=0; i<n; i++) { - AccessibilityNode child = treeModel.createNode(xAC.getAccessibleChild(i)); - if (child != null) { - parent.add(child); - } - } - } catch (com.sun.star.lang.IndexOutOfBoundsException e) { - - } - } - return parent; - } - } - return null; - } - - /** Returns the XAccessible interface corresponding to the toplevel window */ - private AccessibilityNode getTopWindowNode(XTopWindow w) { - XAccessible xAccessible = (XAccessible) - UnoRuntime.queryInterface(XAccessible.class, w); - if (xAccessible != null) { - // XTopWindows usually have an accessible parent, which is the - // native container window .. - XAccessibleContext xAC = xAccessible.getAccessibleContext(); - if (xAC != null) { - XAccessible xParent = xAC.getAccessibleParent(); - if (xParent != null) { - AccessibilityNode parent = getTopWindowNode(xParent); - AccessibilityNode child = treeModel.createNode(xAccessible); - if (parent != null && child != null) { - parent.add(child); - } - return parent; - } else { - return getTopWindowNode(xAccessible, xAC); - } - } - } - return null; - } - - public void disposing(com.sun.star.lang.EventObject eventObject) { - // FIXME : message - // prevent setRoot from removing this as event listener - xToolkit = null; - treeModel.setRoot(treeModel.disconnectedRootNode); - } - - public void windowActivated(com.sun.star.lang.EventObject eventObject) { - } - - public void windowClosed(com.sun.star.lang.EventObject eventObject) { - XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface( - XAccessible.class, eventObject.Source); - if (xAccessible != null) { - AccessibilityNode node = treeModel.findNode(xAccessible); - - // The object implementing XTopWindow is often not the toplevel - // accessible object. - if (node != null && node.getParent() != this) { - node = (AccessibilityNode) node.getParent(); - } - - if (node != null) { - final AccessibilityNode an = node; - Runnable removeRun = new Runnable() { - public void run() { - try { - treeModel.removeNodeFromParent(an); - // Calling oneway methods from an UNO thread may cause - // deadlocks, so removing the listeners here. - an.setAttached(false); - } catch (IllegalArgumentException e) { - // for some toplevel we get more than one event - - // ignoring - } - } - }; - SwingUtilities.invokeLater(removeRun); - } - } - } - - public void windowClosing(com.sun.star.lang.EventObject eventObject) { - } - - public void windowDeactivated(com.sun.star.lang.EventObject eventObject) { - } - - public void windowMinimized(com.sun.star.lang.EventObject eventObject) { - } - - public void windowNormalized(com.sun.star.lang.EventObject eventObject) { - } - - public void windowOpened(com.sun.star.lang.EventObject eventObject) { - final XTopWindow xTopWindow = (XTopWindow) UnoRuntime.queryInterface( - XTopWindow.class, eventObject.Source); - if (xTopWindow != null) { - final ToolkitNode tn = this; - Runnable addNodeRun = new Runnable() { - public void run() { - // Note: UNO does not allow to make synchronous callbacks - // to oneway calls, so we have to fetch the node here. - AccessibilityNode an = getTopWindowNode(xTopWindow); - if (an != null) { - treeModel.addNodeInto(an, tn); - // Calling oneway methods from an UNO thread may cause - // deadlocks, so adding the listeners here. - an.setAttached(true); - } - } - }; - SwingUtilities.invokeLater(addNodeRun); - } - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common deleted file mode 100644 index e44be5136..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common +++ /dev/null @@ -1,35 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JARFILES = jurt.jar unoil.jar ridl.jar -JAVAFILES = \ - AccessibilityModel.java \ - AccessibilityNode.java \ - AccessibilityTree.java \ - DynamicAccessibilityModel.java \ - DynamicAccessibilityNode.java \ - ToolkitNode.java diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk deleted file mode 100644 index 0135ca9d6..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk +++ /dev/null @@ -1,51 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/..$/.. -TARGET = java_tree -PACKAGE = org$/openoffice$/accessibility$/awb$/tree - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" - -.INCLUDE : makefile.common - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -.ENDIF - -# --- Targets ------------------------------------------------------ - - -.INCLUDE : target.mk - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java deleted file mode 100644 index 42c0a5d82..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java +++ /dev/null @@ -1,195 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -import javax.swing.JLabel; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.misc.NameProvider; - -/** The <type>ContextView</type> class displays information accessible over - the <type>XAccessibleContext</type> interface. This includes name, - description, and role. -*/ -public class ComponentView - extends ObjectView -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (UnoRuntime.queryInterface( - XAccessibleComponent.class, xContext) != null) - return new ComponentView (aContainer); - else - return null; - } - - public ComponentView (ObjectViewContainer aContainer) - { - super (aContainer); - - ViewGridLayout aLayout = new ViewGridLayout (this); - - maRelativeLocationLabel = aLayout.AddLabeledEntry ("Relative Location: "); - maAbsoluteLocationLabel = aLayout.AddLabeledEntry ("Location on Screen: "); - maSizeLabel = aLayout.AddLabeledEntry ("Size"); - maBoundingBoxLabel = aLayout.AddLabeledEntry ("Bounding Box: "); - maConsistencyLabel = aLayout.AddLabeledEntry ("Consistent: "); - maForegroundColorLabel = aLayout.AddLabeledEntry ("Foreground Color: "); - maBackgroundColorLabel = aLayout.AddLabeledEntry ("Background Color: "); - } - - - public void SetObject (XAccessibleContext xContext) - { - mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface( - XAccessibleComponent.class, xContext); - super.SetObject (xContext); - } - - public void Update () - { - if (mxContext == null) - { - maRelativeLocationLabel.setText ("<null object>"); - maAbsoluteLocationLabel.setText ("<null object>"); - maSizeLabel.setText ("<null object>"); - maBoundingBoxLabel.setText ("<null object>"); - maConsistencyLabel.setText ("<null object>"); - maForegroundColorLabel.setText ("<null object>"); - maBackgroundColorLabel.setText ("<null object>"); - } - else - { - com.sun.star.awt.Point aLocation = mxComponent.getLocation(); - maRelativeLocationLabel.setText ( - aLocation.X + ", " + aLocation.Y); - com.sun.star.awt.Point aLocationOnScreen = - mxComponent.getLocationOnScreen(); - maAbsoluteLocationLabel.setText ( - aLocationOnScreen.X + ", " + aLocationOnScreen.Y); - com.sun.star.awt.Size aSize = mxComponent.getSize(); - maSizeLabel.setText ( - aSize.Width + ", " + aSize.Height); - com.sun.star.awt.Rectangle aBBox = mxComponent.getBounds(); - maBoundingBoxLabel.setText ( - aBBox.X + ", " + aBBox.Y + "," - + aBBox.Width + ", " + aBBox.Height); - int nColor = mxComponent.getForeground(); - maForegroundColorLabel.setText ( - "R"+ (nColor>>16&0xff) - + "G" + (nColor>>8&0xff) - + "B" + (nColor>>0&0xff) - + "A" + (nColor>>24&0xff)); - nColor = mxComponent.getBackground(); - maBackgroundColorLabel.setText ( - "R"+ (nColor>>16&0xff) - + "G" + (nColor>>8&0xff) - + "B" + (nColor>>0&0xff) - + "A" + (nColor>>24&0xff)); - - // Check consistency of coordinates. - String sConsistency = new String (); - if (aBBox.X!=aLocation.X || aBBox.Y!=aLocation.Y) - sConsistency += (sConsistency.length()!=0?", ":"") + - "Bounding box conflicts with relative location"; - if (aBBox.Width!=aSize.Width || aBBox.Height!=aSize.Height) - sConsistency += (sConsistency.length()!=0?", ":"") + - "Bounding box conflicts with size"; - XAccessible xParent = mxContext.getAccessibleParent(); - XAccessibleComponent xParentComponent = - (XAccessibleComponent)UnoRuntime.queryInterface( - XAccessibleComponent.class, xParent); - if (xParentComponent == null) - { - if (aLocation.X != aLocationOnScreen.X - || aLocation.Y != aLocationOnScreen.Y) - sConsistency += (sConsistency.length()!=0?", ":"") + - "location on screen does not equal " - + "relative location without parent"; - } - else - { - com.sun.star.awt.Point aParentLocationOnScreen = - xParentComponent.getLocationOnScreen(); - if (aLocation.X+aParentLocationOnScreen.X - != aLocationOnScreen.X - || aLocation.Y+aParentLocationOnScreen.Y - != aLocationOnScreen.Y) - sConsistency += (sConsistency.length()!=0?", ":"") + - "location on screen does not match " - + "relative location"; - } - if (sConsistency.length() == 0) - sConsistency += "yes"; - else - maConsistencyLabel.setBackground (GetContainer().GetErrorColor()); - maConsistencyLabel.setText (sConsistency); - } - } - - public String GetTitle () - { - return ("Component"); - } - - /** Listen for changes regarding displayed values. - */ - public void notifyEvent (AccessibleEventObject aEvent) - { - switch (aEvent.EventId) - { - case AccessibleEventId.BOUNDRECT_CHANGED : - case AccessibleEventId.VISIBLE_DATA_CHANGED : - Update (); - } - } - - private XAccessibleComponent mxComponent; - private JLabel - maRelativeLocationLabel, - maAbsoluteLocationLabel, - maSizeLabel, - maBoundingBoxLabel, - maConsistencyLabel, - maForegroundColorLabel, - maBackgroundColorLabel; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java deleted file mode 100644 index 6989f4142..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java +++ /dev/null @@ -1,115 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -import javax.swing.JLabel; -import javax.swing.JTextField; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessibleContext; - -import org.openoffice.accessibility.misc.NameProvider; - -/** The <type>ContextView</type> class displays information accessible over - the <type>XAccessibleContext</type> interface. This includes name, - description, and role. -*/ -public class ContextView - extends ObjectView - implements ActionListener -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (xContext != null) - return new ContextView (aContainer); - else - return null; - } - - public ContextView (ObjectViewContainer aContainer) - { - super (aContainer); - - ViewGridLayout aLayout = new ViewGridLayout (this); - maNameLabel = aLayout.AddLabeledString ("Name:"); - maDescriptionLabel = aLayout.AddLabeledString ("Description:"); - maRoleLabel = aLayout.AddLabeledEntry ("Role:"); - } - - public void Update () - { - if (mxContext == null) - { - maNameLabel.setText ("<null object>"); - maDescriptionLabel.setText ("<null object>"); - maRoleLabel.setText ("<null object>"); - } - else - { - maNameLabel.setText (mxContext.getAccessibleName()); - maDescriptionLabel.setText (mxContext.getAccessibleDescription()); - maRoleLabel.setText (NameProvider.getRoleName (mxContext.getAccessibleRole())); - } - } - - public String GetTitle () - { - return ("Context"); - } - - /** Listen for changes regarding displayed values. - */ - public void notifyEvent (AccessibleEventObject aEvent) - { - switch (aEvent.EventId) - { - case AccessibleEventId.NAME_CHANGED : - case AccessibleEventId.DESCRIPTION_CHANGED : - Update (); - } - } - - public void actionPerformed (ActionEvent aEvent) - { - } - - - private JLabel - maNameLabel, - maDescriptionLabel, - maRoleLabel; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java deleted file mode 100644 index ae8b9cd47..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java +++ /dev/null @@ -1,119 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import javax.swing.JButton; - -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEditableText; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.awb.view.text.TextDialogFactory; - - -public class EditableTextView - extends ObjectView - implements ActionListener -{ - /** Create a EditableTextView when the given object supports the - XAccessibleEditableText interface. - */ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - XAccessibleEditableText xEditableText = - (XAccessibleEditableText)UnoRuntime.queryInterface( - XAccessibleEditableText.class, xContext); - if (xEditableText != null) - return new EditableTextView (aContainer); - else - return null; - } - - public EditableTextView (ObjectViewContainer aContainer) - { - super (aContainer); - - JButton aButton = new JButton ("cut..."); - aButton.setFont (ViewGridLayout.GetFont()); - aButton.addActionListener (this); - add (aButton); - aButton = new JButton ("paste..."); - aButton.setFont (ViewGridLayout.GetFont()); - aButton.addActionListener (this); - add (aButton); - aButton = new JButton ("edit..."); - aButton.setFont (ViewGridLayout.GetFont()); - aButton.addActionListener (this); - add (aButton); - aButton = new JButton ("format..."); - aButton.setFont (ViewGridLayout.GetFont()); - aButton.addActionListener (this); - add (aButton); - } - - - /** Additionally to the context store a reference to the - XAccessibleEditableText interface. - */ - public void SetObject (XAccessibleContext xObject) - { - mxEditableText = (XAccessibleEditableText)UnoRuntime.queryInterface( - XAccessibleEditableText.class, xObject); - super.SetObject (xObject); - } - - public String GetTitle () - { - return ("Editable Text"); - } - - synchronized public void Destroy () - { - mxEditableText = null; - super.Destroy(); - } - - public void actionPerformed (ActionEvent aEvent) - { - String sCommand = aEvent.getActionCommand(); - if (sCommand.equals ("cut...")) - TextDialogFactory.CreateCutDialog (mxContext); - else if (sCommand.equals ("past...")) - TextDialogFactory.CreatePasteDialog (mxContext); - else if (sCommand.equals ("edit...")) - TextDialogFactory.CreateEditDialog (mxContext); - else if (sCommand.equals ("format...")) - TextDialogFactory.CreateFormatDialog (mxContext); - } - - private XAccessibleEditableText mxEditableText; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java deleted file mode 100644 index f3228e36d..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.BorderLayout; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Graphics; -import javax.swing.JScrollBar; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessibleContext; - -import org.openoffice.accessibility.misc.NameProvider; - - -/** A simple event monitor that shows all events sent to one accessible - object. -*/ -class EventMonitorView - extends ObjectView -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (xContext != null) - return new EventMonitorView (aContainer); - else - return null; - } - - public EventMonitorView (ObjectViewContainer aContainer) - { - super (aContainer); - mnLineNo = 0; - Layout(); - } - - public String GetTitle () - { - return "Event Monitor"; - } - - /** Create and arrange the widgets for this view. - */ - private void Layout () - { - setLayout (new GridBagLayout ()); - - maText = new JTextArea(); - maText.setBackground (new Color (255,250,240)); - maText.setFont (new Font ("Helvetica", Font.PLAIN, 9)); - - maScrollPane = new JScrollPane (maText, - JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, - JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - maScrollPane.setPreferredSize (new Dimension (300,200)); - - GridBagConstraints aConstraints = new GridBagConstraints (); - aConstraints.weightx = 1; - aConstraints.fill = GridBagConstraints.HORIZONTAL; - add (maScrollPane, aConstraints); - } - - - public void Update () - { - } - - - private void UpdateVerticalScrollBar () - { - JScrollBar sb = maScrollPane.getVerticalScrollBar(); - if (sb != null) - { - int nScrollBarValue = sb.getMaximum() - sb.getVisibleAmount() - 1; - sb.setValue (nScrollBarValue); - } - } - - - public void notifyEvent (AccessibleEventObject aEvent) - { - maText.append ((mnLineNo++) + ". " + NameProvider.getEventName (aEvent.EventId) + " : " - + aEvent.OldValue.toString() - + " -> " - + aEvent.NewValue.toString() + "\n"); - UpdateVerticalScrollBar(); - } - - private JTextArea maText; - private int mnLineNo; - private JScrollPane maScrollPane; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java deleted file mode 100644 index 5a68a9294..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java +++ /dev/null @@ -1,148 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Font; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -import javax.swing.JButton; -import javax.swing.JLabel; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleStateSet; -import com.sun.star.uno.UnoRuntime; - -public class FocusView - extends ObjectView - implements ActionListener -{ - /** Create a FocusView when the given object supports the - XAccessibleComponent interface. - */ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - XAccessibleComponent xComponent = (XAccessibleComponent)UnoRuntime.queryInterface( - XAccessibleComponent.class, xContext); - if (xComponent != null) - return new FocusView (aContainer); - else - return null; - } - - public FocusView (ObjectViewContainer aContainer) - { - super (aContainer); - - setLayout (new GridBagLayout()); - GridBagConstraints aConstraints = new GridBagConstraints (); - - maFocused = new JLabel (); - maFocused.setFont (GetContainer().GetViewFont()); - aConstraints.gridy = 0; - aConstraints.weightx = 1; - aConstraints.fill = GridBagConstraints.HORIZONTAL; - add (maFocused, aConstraints); - - maGrabFocus = new JButton ("grabFocus"); - maGrabFocus.setFont (GetContainer().GetViewFont()); - aConstraints.gridy = 1; - aConstraints.fill = GridBagConstraints.NONE; - aConstraints.anchor = GridBagConstraints.WEST; - add (maGrabFocus, aConstraints); - - maGrabFocus.addActionListener (this); - } - - /** Additionally to the context store a reference to the - XAccessibleComponent interface. - */ - public void SetObject (XAccessibleContext xObject) - { - mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface( - XAccessibleComponent.class, xObject); - super.SetObject (xObject); - } - - synchronized public void Destroy () - { - super.Destroy(); - maGrabFocus.removeActionListener (this); - } - - synchronized public void Update () - { - if (mxContext == null) - { - maFocused.setText ("<null object>"); - maGrabFocus.setEnabled (false); - } - else - { - XAccessibleStateSet aStateSet = mxContext.getAccessibleStateSet(); - if (aStateSet.contains(AccessibleStateType.FOCUSED)) - maFocused.setText ("focused"); - else - maFocused.setText ("not focused"); - if (maGrabFocus != null) - maGrabFocus.setEnabled (true); - } - } - - public String GetTitle () - { - return ("Focus"); - } - - synchronized public void actionPerformed (ActionEvent aEvent) - { - if (aEvent.getActionCommand().equals("grabFocus")) - { - mxComponent.grabFocus(); - } - } - - public void notifyEvent (AccessibleEventObject aEvent) - { - System.out.println (aEvent); - if (aEvent.EventId == AccessibleEventId.STATE_CHANGED) - Update (); - } - - private JLabel maFocused; - private JButton maGrabFocus; - private XAccessibleComponent mxComponent; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java b/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java deleted file mode 100644 index 0bbe0bd3e..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java +++ /dev/null @@ -1,160 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Component; -import java.awt.Cursor; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.awt.Point; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.awt.event.MouseEvent; -import javax.swing.JComponent; - -class LayoutManager - implements MouseListener, - MouseMotionListener -{ - public LayoutManager (JComponent aLayoutedComponent) - { - maLayoutedComponent = aLayoutedComponent; - maDraggedView = null; - mbInsertionPending = false; - } - - public void mouseClicked (MouseEvent aEvent) - { - System.out.println (aEvent); - } - public void mousePressed (MouseEvent aEvent) - { - mnOldY = aEvent.getPoint().y; - } - public void mouseReleased (MouseEvent aEvent) - { - if (mbInsertionPending) - { - InsertView (maDraggedView, aEvent.getPoint().y); - mbInsertionPending = false; - maDraggedView = null; - } - } - public void mouseEntered (MouseEvent aEvent) - { - } - public void mouseExited (MouseEvent aEvent) - { - if (mbInsertionPending) - { - InsertView (maDraggedView, mnOldY); - mbInsertionPending = false; - maDraggedView = null; - } - } - public void mouseDragged (MouseEvent aEvent) - { - int dy = mnOldY - aEvent.getPoint().y; - GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout(); - if ( ! mbInsertionPending && dy != 0) - { - maDraggedView = RemoveView (mnOldY); - if (maDraggedView != null) - mbInsertionPending = true; - } - } - public void mouseMoved (MouseEvent aEvent) - { - } - - - - - private ObjectView RemoveView (int y) - { - ObjectView aView = null; - GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout(); - - Point aGridLocation = aLayout.location (10,y); - Component[] aComponentList = maLayoutedComponent.getComponents(); - System.out.println ("removing view at " + aGridLocation); - for (int i=0; i<aComponentList.length && aView==null; i++) - { - GridBagConstraints aConstraints = aLayout.getConstraints ( - aComponentList[i]); - if (aConstraints.gridy == aGridLocation.y) - aView = (ObjectView)aComponentList[i]; - } - maNormalCursor = maLayoutedComponent.getCursor(); - if (aView != null) - { - System.out.println ("removing view at " + aGridLocation.y); - maLayoutedComponent.setCursor (new Cursor (Cursor.MOVE_CURSOR)); - maLayoutedComponent.remove (aView); - maLayoutedComponent.validate(); - maLayoutedComponent.repaint(); - } - - return aView; - } - - private void InsertView (ObjectView aView, int y) - { - if (aView != null) - { - GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout(); - Point aGridLocation = aLayout.location (0,y); - Component[] aComponentList = maLayoutedComponent.getComponents(); - System.out.println ("new position is " + aGridLocation.y); - for (int i=0; i<aComponentList.length; i++) - { - GridBagConstraints aConstraints = aLayout.getConstraints ( - aComponentList[i]); - if (aConstraints.gridy >= aGridLocation.y) - { - if (aConstraints.gridy == aGridLocation.y) - maLayoutedComponent.add (maDraggedView, aConstraints); - aConstraints.gridy += 1; - aLayout.setConstraints (aComponentList[i], aConstraints); - } - } - maLayoutedComponent.validate(); - maLayoutedComponent.repaint(); - } - maLayoutedComponent.setCursor (maNormalCursor); - } - - - - - private JComponent maLayoutedComponent; - private ObjectView maDraggedView; - private int mnOldY; - private boolean mbInsertionPending; - private Cursor maNormalCursor; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile deleted file mode 100644 index feb3f7f3a..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : package - -ROOT=../../../../.. -PACKAGE = org.openoffice.accessibility.awb.view -SUBDIRS = text -include makefile.common - -include $(ROOT)/makefile.in - - -package : $(CLASS_FILES) diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java deleted file mode 100644 index ada74f6db..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.openoffice.accessibility.awb.view; - -import javax.swing.JPanel; - -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessibleContext; - -/** This is the base class for all object views that can be placed inside an - object view container. - - <p>When provided with a new accessible object the container will call - the Create method to create a new instance when certain conditions are - met. It then calls SetObject to pass the object to the instance. - Finally it calls Update.</p> - - <p>The SetObject and Update methods may be called for a new object - without calling Create first. In this way an existing instance is - recycled.</p> -*/ -abstract public class ObjectView - extends JPanel -{ - /** This factory method creates a new instance of the (derived) class - when the given accessible object supports all necessary features. - In the ususal case this will be the support of a specific - accessibility interface. - */ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - return null; - } - - public ObjectView (ObjectViewContainer aContainer) - { - maContainer = aContainer; - mxContext = null; - } - - /** Call this when you want the object to be destroyed. Release all - resources when called. - */ - public void Destroy () - { - } - - /** Tell the view to display information for a new accessible object. - @param xObject - The given object may be null. A typical behaviour in this case - would be to display a blank area. But is also possible to show - information about the last object. - */ - public void SetObject (XAccessibleContext xContext) - { - mxContext = xContext; - Update (); - } - - - /** This is a request of a repaint with the current state of the current - object. The current object may or may not be the same as the one - when Update() was called the last time. - */ - public void Update () - { - } - - - /** Return a string that is used as a title of an enclosing frame. - */ - abstract public String GetTitle (); - - - public ObjectViewContainer GetContainer () - { - return maContainer; - } - - - /** Implement this method if you are interested in accessible events. - */ - public void notifyEvent (AccessibleEventObject aEvent) - {} - - /// Reference to the current object to display information about. - protected XAccessibleContext mxContext; - - protected ObjectViewContainer maContainer; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java deleted file mode 100644 index bc86cb3ee..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java +++ /dev/null @@ -1,310 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.awt.Insets; - -import java.util.Vector; - -import java.lang.reflect.Method; -import java.lang.NoSuchMethodException; -import java.lang.IllegalAccessException; -import java.lang.reflect.InvocationTargetException; - -import javax.swing.JPanel; -import javax.swing.JTree; -import javax.swing.BorderFactory; -import javax.swing.border.Border; -import javax.swing.border.BevelBorder; -import javax.swing.SwingUtilities; - -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleEventBroadcaster; -import com.sun.star.accessibility.XAccessibleEventListener; -import com.sun.star.accessibility.XAccessibleSelection; -import com.sun.star.lang.EventObject; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.awb.view.ObjectView; - - - -/** This container of specialized object views displays information about - one accessible object. - In this it plays several roles: - 1. Object container. - 2. Accessibility event dispatcher. - 3. Object view class registration manager. - 4. Swing widget. -*/ -public class ObjectViewContainer - extends JPanel - implements XAccessibleEventListener -{ - public ObjectViewContainer () - { - maFont = new Font ("Dialog", Font.PLAIN, 11); - maViewTemplates = new Vector (); - maViewBorder = BorderFactory.createBevelBorder (BevelBorder.RAISED); - GridBagLayout aLayout = new GridBagLayout (); - setLayout (aLayout); - // maLayoutManager = new LayoutManager (this); - maLayoutManager = null; - - RegisterView (ContextView.class); - RegisterView (ComponentView.class); - RegisterView (ParentView.class); - RegisterView (StateSetView.class); - RegisterView (FocusView.class); - RegisterView (TextView.class); - RegisterView (EditableTextView.class); - RegisterView (TableView.class); - RegisterView (SelectionView.class); - RegisterView (ServiceInterfaceView.class); - RegisterView (EventMonitorView.class); - - mxContext = null; - - // addMouseListener (maLayoutManager); - // addMouseMotionListener (maLayoutManager); - } - - - - /** Remove all existing views and create new ones according to the - interfaces supported by the given object. - */ - public synchronized void SetObject (XAccessibleContext xContext) - { - // Call Destroy at all views to give them a chance to release their - // resources. - int n = getComponentCount(); - for (int i=0; i<n; i++) - ((ObjectView)getComponent(i)).Destroy(); - // Remove existing views. - removeAll (); - - mxContext = xContext; - - // Add new views. - for (int i=0; i<maViewTemplates.size(); i++) - { - try - { - Class aViewClass = (Class)maViewTemplates.elementAt (i); - Method aCreateMethod = aViewClass.getDeclaredMethod ( - "Create", new Class[] { - ObjectViewContainer.class, - XAccessibleContext.class}); - if (aCreateMethod != null) - { - ObjectView aView = (ObjectView) - aCreateMethod.invoke ( - null, new Object[] {this, xContext}); - Add (aView); - } - } - catch (NoSuchMethodException e) - {System.err.println ("Caught exception while creating view " - + i + " : " + e);} - catch (IllegalAccessException e) - {System.err.println ("Caught exception while creating view " - + i + " : " + e);} - catch (InvocationTargetException e) - {System.err.println ("Caught exception while creating view " - + i + " : " + e);} - } - - UpdateLayoutManager (); - - // Now set the object at all views. - n = getComponentCount(); - for (int i=0; i<n; i++) - ((ObjectView)getComponent(i)).SetObject (xContext); - - setPreferredSize (getLayout().preferredLayoutSize (this)); - ((GridBagLayout) getLayout()).invalidateLayout(this); - validate(); - } - - - - - /** Add the given class to the list of classes which will be - instantiated the next time an accessible object is set. - */ - public void RegisterView (Class aObjectViewClass) - { - maViewTemplates.addElement (aObjectViewClass); - } - - - - - /** Replace one view class with another. - */ - public void ReplaceView (Class aObjectViewClass, Class aSubstitution) - { - int nIndex = maViewTemplates.indexOf (aObjectViewClass); - if (nIndex >= 0) - maViewTemplates.setElementAt (aSubstitution, nIndex); - } - - - /** Return a font that should be used for widgets in the views. - */ - public Font GetViewFont () - { - return maFont; - } - - public Color GetErrorColor () - { - return new Color (255,80,50); - } - - /** Add an object view and place it below all previously added views. - @param aView - This argument may be null. In this case nothing happens. - */ - private void Add (ObjectView aView) - { - if (aView != null) - { - GridBagConstraints constraints = new GridBagConstraints (); - constraints.gridx = 0; - constraints.gridy = getComponentCount(); - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 1; - constraints.weighty = 0; - constraints.ipadx = 2; - constraints.ipady = 5; - constraints.insets = new Insets (5,5,5,5); - constraints.anchor = GridBagConstraints.NORTH; - constraints.fill = GridBagConstraints.HORIZONTAL; - - aView.setBorder ( - BorderFactory.createTitledBorder ( - maViewBorder, aView.GetTitle())); - - add (aView, constraints); - } - } - - /** Update the layout manager by setting the vertical weight of the - bottom entry to 1 and so make it strech to over the available - space. - - */ - private void UpdateLayoutManager () - { - // Adapt the layout manager. - if (getComponentCount() > 1000) - { - Component aComponent = getComponent (getComponentCount()-1); - GridBagLayout aLayout = (GridBagLayout)getLayout(); - GridBagConstraints aConstraints = aLayout.getConstraints (aComponent); - aConstraints.weighty = 1; - aLayout.setConstraints (aComponent, aConstraints); - } - } - - - - - /** Put the event just received into the event queue which will deliver - it soon asynchronuously to the DispatchEvent method. - */ - public void notifyEvent (final AccessibleEventObject aEvent) - { - SwingUtilities.invokeLater( - new Runnable() - { - public void run() - { - DispatchEvent (aEvent); - } - } - ); - } - - - - - /** Forward accessibility events to all views without them being - registered as event listeners each on their own. - */ - private void DispatchEvent (AccessibleEventObject aEvent) - { - int n = getComponentCount(); - for (int i=0; i<n; i++) - ((ObjectView)getComponent(i)).notifyEvent (aEvent); - } - - - - /** When the object is disposed that is displayed by the views of this - container then tell all views about this. - */ - public void disposing (EventObject aEvent) - { - mxContext = null; - SwingUtilities.invokeLater( - new Runnable() - { - public void run() - { - SetObject (null); - } - } - ); - } - - - - - /// The current accessible context display by the views. - private XAccessibleContext mxContext; - - /// Observe this tree for selection changes and notify them to all - /// children. - private JTree maTree; - private Border maViewBorder; - /// List of view templates which are instantiated when new object is set. - private Vector maViewTemplates; - private Font maFont; - private LayoutManager maLayoutManager; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java deleted file mode 100644 index 8db9af4f4..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.openoffice.accessibility.awb.view; - -import java.awt.BorderLayout; -import javax.swing.JFrame; -import com.sun.star.accessibility.XAccessibleContext; - - -/** Top level window that creates a single object view container. This - container shows information about a specific accessible object and is - not affected by the selection of the accessbility tree widget. -*/ -public class ObjectViewContainerWindow - extends JFrame -{ - public ObjectViewContainerWindow (XAccessibleContext xContext) - { - setSize (new java.awt.Dimension (300,600)); - - maContainer = new ObjectViewContainer (); - maContainer.SetObject (xContext); - getContentPane().add (maContainer, BorderLayout.CENTER); - - pack (); - setVisible (true); - } - - /** Set the object that is displayed in this window. - */ - public void SetObject (XAccessibleContext xContext) - { - maContainer.SetObject (xContext); - } - - private ObjectViewContainer maContainer; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java deleted file mode 100644 index 828c3fd1a..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java +++ /dev/null @@ -1,147 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.lang.Integer; -import javax.swing.JLabel; -import javax.swing.JTextField; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.lang.IndexOutOfBoundsException; - -import org.openoffice.accessibility.misc.NameProvider; - - -/** Show informations related to the parent/child relationship. -*/ -public class ParentView - extends ObjectView -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (xContext != null) - return new ParentView (aContainer); - else - return null; - } - - public ParentView (ObjectViewContainer aContainer) - { - super (aContainer); - - ViewGridLayout aLayout = new ViewGridLayout (this); - maParentLabel = aLayout.AddLabeledEntry ("Has parent: "); - maIndexLabel = aLayout.AddLabeledEntry ("Index in parent: "); - maValidLabel = aLayout.AddLabeledEntry ("Parent/Child relationship valid: "); - maChildrenLabel = aLayout.AddLabeledEntry ("Child count: "); - } - - public void Update () - { - if (mxContext == null) - { - maParentLabel.setText ("<null object>"); - maIndexLabel.setText ("<null object>"); - maValidLabel.setText ("<null object>"); - maChildrenLabel.setText ("<null object>"); - } - else - { - XAccessible xParent = mxContext.getAccessibleParent(); - int nIndex = mxContext.getAccessibleIndexInParent(); - maIndexLabel.setText (Integer.toString(nIndex)); - if (xParent != null) - { - maParentLabel.setText ("yes"); - XAccessibleContext xParentContext = - xParent.getAccessibleContext(); - if (xParentContext != null) - { - try - { - XAccessible xChild = - xParentContext.getAccessibleChild(nIndex); - if (xChild != mxContext) - maValidLabel.setText ("yes"); - else - { - maValidLabel.setText ("no"); - maValidLabel.setBackground (GetContainer().GetErrorColor()); - } - } - catch (IndexOutOfBoundsException e) - { - maValidLabel.setText ("no: invalid index in parent"); - maValidLabel.setBackground (GetContainer().GetErrorColor()); - } - } - else - { - maValidLabel.setText ("no: parent has no context"); - maValidLabel.setBackground (GetContainer().GetErrorColor()); - } - } - else - maParentLabel.setText ("no"); - maChildrenLabel.setText (Integer.toString(mxContext.getAccessibleChildCount())); - } - } - - public String GetTitle () - { - return ("Parent"); - } - - - /** Listen for changes regarding displayed values. - */ - public void notifyEvent (AccessibleEventObject aEvent) - { - switch (aEvent.EventId) - { - default: - Update (); - } - } - - - private JLabel - maParentLabel, - maIndexLabel, - maValidLabel, - maChildrenLabel; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java deleted file mode 100644 index 4970546fd..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java +++ /dev/null @@ -1,267 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.util.Vector; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; - -import javax.swing.BoxLayout; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JOptionPane; -import javax.swing.JRadioButton; -import javax.swing.JScrollPane; -import javax.swing.JToggleButton; -import javax.swing.ListSelectionModel; - - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleSelection; -import com.sun.star.accessibility.XAccessibleStateSet; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.lang.IndexOutOfBoundsException; - - -/** Display a list of children and select/deselect buttons -*/ -class SelectionView - extends ObjectView - implements ActionListener -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - XAccessibleSelection xSelection = (XAccessibleSelection)UnoRuntime.queryInterface( - XAccessibleSelection.class, xContext); - if (xSelection != null) - return new SelectionView(aContainer); - else - return null; - } - - public SelectionView (ObjectViewContainer aContainer) - { - super (aContainer); - Layout(); - } - - public String GetTitle () - { - return "Selection"; - } - - /** Create and arrange the widgets for this view. - */ - private void Layout () - { - setLayout (new GridBagLayout()); - - GridBagConstraints aConstraints = new GridBagConstraints(); - - // Label that shows whether the selection is multi selectable. - aConstraints.gridx = 0; - aConstraints.gridy = 0; - aConstraints.anchor = GridBagConstraints.WEST; - maTypeLabel = new JLabel (); - maTypeLabel.setFont (maContainer.GetViewFont()); - add (maTypeLabel, aConstraints); - - // the JListBox - maChildrenSelector = new JPanel (); - maChildrenSelector.setPreferredSize (new Dimension (100,100)); - maChildrenSelector.setLayout ( - new BoxLayout (maChildrenSelector, BoxLayout.Y_AXIS)); - - aConstraints.gridx = 0; - aConstraints.gridwidth = 4; - aConstraints.gridy = 1; - aConstraints.fill = GridBagConstraints.HORIZONTAL; - add (new JScrollPane (maChildrenSelector, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED), - aConstraints); - - JButton aButton; - aButton = new JButton( "Select all" ); - aButton.setFont (maContainer.GetViewFont()); - aButton.setActionCommand( "Select all" ); - aButton.addActionListener( this ); - aConstraints.gridx = 0; - aConstraints.gridwidth = 1; - aConstraints.gridy = 2; - aConstraints.fill = GridBagConstraints.NONE; - aConstraints.anchor = GridBagConstraints.WEST; - add (aButton, aConstraints); - - aButton = new JButton( "Clear Selection" ); - aButton.setFont (maContainer.GetViewFont()); - aButton.setActionCommand( "Clear Selection" ); - aButton.addActionListener( this ); - aConstraints.gridx = 1; - aConstraints.gridy = 2; - aConstraints.weightx = 1; - add (aButton, aConstraints); - - setSize (getPreferredSize()); - } - - - public void SetObject (XAccessibleContext xContext) - { - mxSelection = (XAccessibleSelection)UnoRuntime.queryInterface( - XAccessibleSelection.class, xContext); - super.SetObject (xContext); - } - - - public void Update () - { - maChildrenSelector.removeAll (); - - // Determine whether multi selection is possible. - XAccessibleStateSet aStateSet = mxContext.getAccessibleStateSet(); - boolean bMultiSelectable = false; - if (aStateSet!=null && aStateSet.contains( - AccessibleStateType.MULTI_SELECTABLE)) - { - bMultiSelectable = true; - maTypeLabel.setText ("multi selectable"); - } - else - { - maTypeLabel.setText ("single selectable"); - } - - if (mxContext.getAccessibleRole() != AccessibleRole.TABLE) - { - int nCount = mxContext.getAccessibleChildCount(); - for (int i=0; i<nCount; i++) - { - try - { - XAccessible xChild = mxContext.getAccessibleChild(i); - XAccessibleContext xChildContext = xChild.getAccessibleContext(); - - String sName = i + " " + xChildContext.getAccessibleName(); - JToggleButton aChild; - aChild = new JCheckBox (sName); - aChild.setFont (maContainer.GetViewFont()); - - XAccessibleStateSet aChildStateSet = - mxContext.getAccessibleStateSet(); - aChild.setSelected (aChildStateSet!=null - && aChildStateSet.contains(AccessibleStateType.SELECTED)); - - aChild.addActionListener (this); - maChildrenSelector.add (aChild); - - } - catch (IndexOutOfBoundsException e) - { - } - } - } - } - - - void SelectAll() - { - mxSelection.selectAllAccessibleChildren(); - } - - void ClearSelection() - { - mxSelection.clearAccessibleSelection(); - } - - - - /** Call the function associated with the pressed button. - */ - public void actionPerformed (ActionEvent aEvent) - { - String sCommand = aEvent.getActionCommand(); - - if (sCommand.equals ("Clear Selection")) - ClearSelection(); - else if (sCommand.equals ("Select all")) - SelectAll(); - else - { - // Extract the child index from the widget text. - String[] aWords = sCommand.split (" "); - int nIndex = Integer.parseInt(aWords[0]); - try - { - if (((JToggleButton)aEvent.getSource()).isSelected()) - mxSelection.selectAccessibleChild (nIndex); - else - mxSelection.deselectAccessibleChild (nIndex); - } - catch (IndexOutOfBoundsException e) - { - System.err.println ( - "caught exception while changing selection: " + e); - } - } - } - - - public void notifyEvent (AccessibleEventObject aEvent) - { - switch (aEvent.EventId) - { - case AccessibleEventId.SELECTION_CHANGED: - case AccessibleEventId.STATE_CHANGED: - case AccessibleEventId.CHILD: - Update (); - } - } - - private JPanel maChildrenSelector; - private XAccessibleSelection mxSelection; - private JLabel maTypeLabel; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java deleted file mode 100644 index a6292d00b..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java +++ /dev/null @@ -1,150 +0,0 @@ -package org.openoffice.accessibility.awb.view; - -import java.awt.GridLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.lang.Integer; -import javax.swing.JScrollPane; -import javax.swing.JTree; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.lang.XServiceInfo; -import com.sun.star.lang.XTypeProvider; -import com.sun.star.uno.Type; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.misc.NameProvider; - - -/** Show all supported services and interfaces. -*/ -public class ServiceInterfaceView - extends ObjectView -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (xContext != null) - return new ServiceInterfaceView (aContainer); - else - return null; - } - - - - - public ServiceInterfaceView (ObjectViewContainer aContainer) - { - super (aContainer); - - maImplementationNameRoot = new DefaultMutableTreeNode ("Implementation Name"); - maServiceRoot = new DefaultMutableTreeNode ("Supported Services"); - maInterfaceRoot = new DefaultMutableTreeNode ("Supported Interfaces"); - maTree = new JTree (new DefaultMutableTreeNode[] - {maServiceRoot,maInterfaceRoot}); - JScrollPane aScrollPane = new JScrollPane ( - maTree, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - - setMinimumSize (new Dimension(300,200)); - setLayout (new GridLayout (1,1)); - add (aScrollPane); - } - - - - - public void Update () - { - DefaultTreeModel aModel = (DefaultTreeModel)maTree.getModel(); - - // Clear old tree. - DefaultMutableTreeNode aRoot =(DefaultMutableTreeNode)aModel.getRoot(); - aRoot.removeAllChildren(); - - // Create the new tree. - CreateImplementationNameTree (); - CreateServiceTree (); - CreateInterfaceTree (); - aRoot.add (maImplementationNameRoot); - aRoot.add (maServiceRoot); - aRoot.add (maInterfaceRoot); - aModel.setRoot (aRoot); - - // Expand whole tree. - for (int i=0; i<maTree.getRowCount(); i++) - maTree.expandRow (i); - } - - private void CreateImplementationNameTree () - { - XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface( - XServiceInfo.class, mxContext); - maImplementationNameRoot.removeAllChildren(); - if (xServiceInfo != null) - { - maImplementationNameRoot.add ( - new DefaultMutableTreeNode ( - (xServiceInfo!=null - ? xServiceInfo.getImplementationName() - : "<XServiceInfo not supported>"))); - } - } - - private void CreateServiceTree () - { - XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface( - XServiceInfo.class, mxContext); - maServiceRoot.removeAllChildren(); - if (xServiceInfo != null) - { - String[] aServiceNames = xServiceInfo.getSupportedServiceNames(); - int nCount = aServiceNames.length; - for (int i=0; i<nCount; i++) - maServiceRoot.add ( - new DefaultMutableTreeNode (aServiceNames[i])); - } - else - maServiceRoot.add ( - new DefaultMutableTreeNode("XServiceInfo not supported")); - } - - private void CreateInterfaceTree () - { - XTypeProvider xTypeProvider = (XTypeProvider)UnoRuntime.queryInterface( - XTypeProvider.class, mxContext); - maInterfaceRoot.removeAllChildren(); - if (xTypeProvider != null) - { - Type[] aTypes = xTypeProvider.getTypes(); - int nCount = aTypes.length; - for (int i=0; i<nCount; i++) - maInterfaceRoot.add ( - new DefaultMutableTreeNode (aTypes[i].getTypeName())); - } - else - maInterfaceRoot.add ( - new DefaultMutableTreeNode("XTypeProvider not supported")); - } - - public String GetTitle () - { - return ("Supported Services and Interfaces"); - } - - - private JTree maTree; - private DefaultMutableTreeNode maImplementationNameRoot; - private DefaultMutableTreeNode maServiceRoot; - private DefaultMutableTreeNode maInterfaceRoot; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java deleted file mode 100644 index a8c6b23b3..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java +++ /dev/null @@ -1,199 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Insets; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.geom.AffineTransform; - - - -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleStateSet; - -import org.openoffice.accessibility.misc.NameProvider; - -public class StateSetView - extends ObjectView -{ - /** Create a FocusView when the given object supports the - XAccessibleComponent interface. - */ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - ObjectView aView = null; - if (xContext != null) - aView = new StateSetView (aContainer); - - return aView; - } - - public StateSetView (ObjectViewContainer aContainer) - { - super (aContainer); - setPreferredSize (new Dimension(300,110)); - setMinimumSize (new Dimension(200,80)); - } - - public String GetTitle () - { - return ("StateSet"); - } - - public void notifyEvent (AccessibleEventObject aEvent) - { - if (aEvent.EventId == AccessibleEventId.STATE_CHANGED) - Update(); - } - - - public void Update () - { - repaint (); - } - - public void paintChildren (Graphics g) - { - if (g != null) - synchronized (g) - { - super.paintChildren (g); - - // Calculcate the are inside the border. - Insets aInsets = getInsets (); - Dimension aSize = getSize(); - Rectangle aWidgetArea = new Rectangle ( - aInsets.left, - aInsets.top, - aSize.width-aInsets.left-aInsets.right, - aSize.height-aInsets.top-aInsets.bottom); - - PaintAllStates ((Graphics2D)g, aWidgetArea); - } - } - - private void PaintAllStates (Graphics2D g, Rectangle aWidgetArea) - { - Color aTextColor = g.getColor(); - - g.setRenderingHint ( - RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - - XAccessibleStateSet xStateSet = ( mxContext != null ) ? mxContext.getAccessibleStateSet() : null; - if (xStateSet != null) - { - short aStates[] = xStateSet.getStates (); - final int nMaxStateIndex = AccessibleStateType.VISIBLE;//MANAGES_DESCENDANTS; - int nStateWidth = (aWidgetArea.width-12) / (nMaxStateIndex+1); - AffineTransform aTransform = g.getTransform (); - g.setColor (aTextColor); - int y = aWidgetArea.y+aWidgetArea.height - 25; - double nTextRotation = -0.9;//-java.lang.Math.PI/2; - double nScale = 0.6; - - // Create a shape for the boxes. - int nBoxWidth = 8; - Rectangle aCheckBox = new Rectangle (-nBoxWidth/2,0,nBoxWidth,nBoxWidth); - - // For each state draw a box, fill it appropriately, and draw - // thre states name. - for (short i=0; i<=nMaxStateIndex; i++) - { - int x = nStateWidth + i * nStateWidth; - String sStateName = NameProvider.getStateName (i); - if (sStateName == null) - sStateName = new String ("<unknown state " + i + ">"); - boolean bStateSet = xStateSet.contains (i); - g.setTransform (aTransform); - g.translate (x,y); - if (bStateSet) - { - switch (i) - { - case AccessibleStateType.INVALID: - case AccessibleStateType.DEFUNC: - g.setColor (saInvalidColor); - break; - case AccessibleStateType.FOCUSED: - g.setColor (saFocusColor); - break; - case AccessibleStateType.SELECTED: - g.setColor (saSelectionColor); - break; - case AccessibleStateType.EDITABLE: - g.setColor (saEditColor); - break; - default: - g.setColor (saDefaultColor); - break; - } - g.fill (aCheckBox); - g.setColor (aTextColor); - } - g.draw (aCheckBox); - g.rotate (nTextRotation); - g.scale (nScale, nScale); - g.translate (2,-2); - g.drawString (sStateName, 0,0); - } - - // Draw string of set states. - String sStates = new String (); - for (int i=0; i<aStates.length; i++) - { - if (i > 0) - sStates = sStates + ", "; - sStates = sStates + NameProvider.getStateName(aStates[i]); - } - g.setTransform (aTransform); - g.translate (10,aWidgetArea.y+aWidgetArea.height-3); - g.scale (0.9,0.9); - g.drawString (sStates,0,0); - } - } - - static private Color - saInvalidColor = new Color (255,0,255), - saFocusColor = new Color (100,100,255), - saSelectionColor = Color.GREEN, - saDefaultColor = new Color (90,90,90), - saEditColor = new Color (240,240,0); -} - - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java deleted file mode 100644 index 35f037916..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java +++ /dev/null @@ -1,161 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.lang.Integer; -import java.lang.StringBuffer; - -import javax.swing.JLabel; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleTable; -import com.sun.star.uno.UnoRuntime; - - - -/** The <type>ContextView</type> class displays information accessible over - the <type>XAccessibleContext</type> interface. This includes name, - description, and role. -*/ -public class TableView - extends ObjectView -{ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - if (UnoRuntime.queryInterface( - XAccessibleTable.class, xContext) != null) - return new TableView (aContainer); - else - return null; - } - - public TableView (ObjectViewContainer aContainer) - { - super (aContainer); - - ViewGridLayout aLayout = new ViewGridLayout (this); - - maRowCountLabel = aLayout.AddLabeledEntry ("Row Count: "); - maColumnCountLabel = aLayout.AddLabeledEntry ("Column Count: "); - maCellCountLabel = aLayout.AddLabeledEntry ("Cell Count: "); - maSelectedRowsLabel = aLayout.AddLabeledEntry ("Selected Rows: "); - maSelectedColumnsLabel = aLayout.AddLabeledEntry ("Selected Columns: "); - } - - - public void SetObject (XAccessibleContext xContext) - { - mxTable = (XAccessibleTable)UnoRuntime.queryInterface( - XAccessibleTable.class, xContext); - super.SetObject (xContext); - } - - - public void Update () - { - if (mxTable == null) - { - maRowCountLabel.setText ("<null object>"); - maColumnCountLabel.setText ("<null object>"); - maCellCountLabel.setText ("<null object>"); - maSelectedRowsLabel.setText ("<null object>"); - maSelectedColumnsLabel.setText ("<null object>"); - } - else - { - int nRowCount = mxTable.getAccessibleRowCount(); - int nColumnCount = mxTable.getAccessibleColumnCount(); - maRowCountLabel.setText (Integer.toString (nRowCount)); - maColumnCountLabel.setText (Integer.toString (nColumnCount)); - maCellCountLabel.setText (Integer.toString (nRowCount*nColumnCount)); - - StringBuffer sList = new StringBuffer(); - int[] aSelected = mxTable.getSelectedAccessibleRows(); - boolean bFirst = true; - for (int i=0; i<aSelected.length; i++) - { - if ( ! bFirst) - { - sList.append (", "); - bFirst = false; - } - sList.append (Integer.toString(aSelected[i])); - } - maSelectedRowsLabel.setText (sList.toString()); - sList = new StringBuffer(); - aSelected = mxTable.getSelectedAccessibleColumns(); - bFirst = true; - for (int i=0; i<aSelected.length; i++) - { - if ( ! bFirst) - { - sList.append (", "); - bFirst = false; - } - sList.append (Integer.toString(aSelected[i])); - } - maSelectedColumnsLabel.setText (sList.toString()); - } - } - - - - - public String GetTitle () - { - return ("Table"); - } - - - - - /** Listen for changes regarding displayed values. - */ - public void notifyEvent (AccessibleEventObject aEvent) - { - switch (aEvent.EventId) - { - case AccessibleEventId.TABLE_MODEL_CHANGED : - case AccessibleEventId.SELECTION_CHANGED: - Update (); - } - } - - private XAccessibleTable mxTable; - private JLabel - maRowCountLabel, - maColumnCountLabel, - maCellCountLabel, - maSelectedRowsLabel, - maSelectedColumnsLabel; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java deleted file mode 100644 index 451097b5d..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java +++ /dev/null @@ -1,467 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JSpinner; -import javax.swing.JTree; -import javax.swing.tree.TreeNode; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.MutableTreeNode; - -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.AccessibleTextType; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.TextSegment; -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleMultiLineText; -import com.sun.star.accessibility.XAccessibleStateSet; -import com.sun.star.awt.Point; -import com.sun.star.awt.Rectangle; -import com.sun.star.beans.PropertyValue; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.lang.IllegalArgumentException; -import com.sun.star.uno.UnoRuntime; - -import org.openoffice.accessibility.awb.view.text.CaretSpinnerModel; -import org.openoffice.accessibility.awb.view.text.TextDialogFactory; - - -public class TextView - extends ObjectView - implements ActionListener -{ - - /** Create a TextView when the given object supports the - XAccessibleText interface. - */ - static public ObjectView Create ( - ObjectViewContainer aContainer, - XAccessibleContext xContext) - { - XAccessibleText xText = (XAccessibleText)UnoRuntime.queryInterface( - XAccessibleText.class, xContext); - if (xText != null) - return new TextView (aContainer); - else - return null; - } - - - public TextView (ObjectViewContainer aContainer) - { - super (aContainer); - - ViewGridLayout aLayout = new ViewGridLayout (this); - - maTextLabel = aLayout.AddLabeledString ("Text: "); - maCharacterArrayLabel = aLayout.AddLabeledEntry ("Characters: "); - maCharacterCountLabel = aLayout.AddLabeledEntry ("Character Count: "); - maSelectionLabel = aLayout.AddLabeledEntry ("Selection: "); - maBoundsLabel = aLayout.AddLabeledEntry ("Bounds Test: "); - maCaretPositionSpinner = (JSpinner)aLayout.AddLabeledComponent ( - "Caret position:", new JSpinner()); - Dimension aSize = maCaretPositionSpinner.getSize(); - maCaretPositionSpinner.setPreferredSize (new Dimension (100,20)); - maCaretLineNoLabel = aLayout.AddLabeledEntry ("Line number at caret: "); - maCaretLineTextLabel = aLayout.AddLabeledEntry ("Text of line at caret: "); - maLineNoFromCaretPosLabel = aLayout.AddLabeledEntry ("Line number at index of caret: "); - maLineTextFromCaretPosLabel = aLayout.AddLabeledEntry ("Text of line at index of caret: "); - - JPanel aButtonPanel = new JPanel (); - aLayout.AddComponent (aButtonPanel); - - JButton aButton = new JButton ("select..."); - aButton.setFont (aLayout.GetFont()); - aButton.addActionListener (this); - aButtonPanel.add (aButton); - - aButton = new JButton ("copy..."); - aButton.setFont (aLayout.GetFont()); - aButton.addActionListener (this); - aButtonPanel.add (aButton); - - // A tree that holds the text broken down into various segments. - maTree = new JTree (); - aLayout.AddComponent (new JScrollPane ( - maTree, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)); - } - - - /** Additionally to the context store a reference to the - XAccessibleText interface. - */ - public void SetObject (XAccessibleContext xObject) - { - mxText = (XAccessibleText)UnoRuntime.queryInterface( - XAccessibleText.class, xObject); - maCaretSpinnerModel = new CaretSpinnerModel(mxText); - maCaretPositionSpinner.setModel (maCaretSpinnerModel); - super.SetObject (xObject); - } - - synchronized public void Destroy () - { - mxText = null; - super.Destroy(); - } - - synchronized public void Update () - { - maCaretPositionSpinner.setEnabled (mxText != null); - DefaultMutableTreeNode aRoot = new DefaultMutableTreeNode ("Text Segments"); - if (mxText == null) - { - maTextLabel.setText ("<null object>"); - maCharacterArrayLabel.setText ("<null object>"); - maCharacterCountLabel.setText ("<null object>"); - maSelectionLabel.setText ("<null object>"); - maBoundsLabel.setText ("<null object>"); - maCaretLineNoLabel.setText ("<null object>"); - maCaretLineTextLabel.setText ("<null object>"); - maLineNoFromCaretPosLabel.setText ("<null object>"); - maLineTextFromCaretPosLabel.setText ("<null object>"); - } - else - { - maTextLabel.setText (mxText.getText()); - maCharacterArrayLabel.setText (GetCharacterArray()); - maCharacterCountLabel.setText ( - Integer.toString(mxText.getCharacterCount())); - // Selection. - maSelectionLabel.setText ( - "[" + mxText.getSelectionStart() - + "," + mxText.getSelectionEnd() - + "] \"" + mxText.getSelectedText() + "\""); - - // Character bounds. - maBoundsLabel.setText (GetTextBoundsString()); - - // Caret position. - maCaretPositionSpinner.setValue (new Integer (mxText.getCaretPosition())); - - // Multi line methods. - XAccessibleMultiLineText xMultiText = (XAccessibleMultiLineText) - UnoRuntime.queryInterface( XAccessibleMultiLineText.class, mxText ); - - if( null != xMultiText ) { - try { - maCaretLineNoLabel.setText ( Integer.toString( xMultiText.getNumberOfLineWithCaret() ) ); - TextSegment ts = xMultiText.getTextAtLineWithCaret(); - maCaretLineTextLabel.setText ( "[" + ts.SegmentStart - + "," + ts.SegmentEnd - + "] \"" + ts.SegmentText + "\""); - maLineNoFromCaretPosLabel.setText ( Integer.toString( xMultiText.getLineNumberAtIndex( mxText.getCaretPosition() ) ) ); - ts = xMultiText.getTextAtLineNumber(xMultiText.getLineNumberAtIndex( mxText.getCaretPosition() ) ); - maLineTextFromCaretPosLabel.setText ( "[" + ts.SegmentStart - + "," + ts.SegmentEnd - + "] \"" + ts.SegmentText + "\""); - } catch( IndexOutOfBoundsException e) { - } - } - - // Text segments. - aRoot.add (CreateNode ("Character", AccessibleTextType.CHARACTER)); - aRoot.add (CreateNode ("Word", AccessibleTextType.WORD)); - aRoot.add (CreateNode ("Sentence", AccessibleTextType.SENTENCE)); - aRoot.add (CreateNode ("Paragraph", AccessibleTextType.PARAGRAPH)); - aRoot.add (CreateNode ("Line", AccessibleTextType.LINE)); - aRoot.add (CreateNode ("Attribute", AccessibleTextType.ATTRIBUTE_RUN)); - aRoot.add (CreateNode ("Glyph", AccessibleTextType.GLYPH)); - } - ((DefaultTreeModel)maTree.getModel()).setRoot (aRoot); - } - - public String GetTitle () - { - return ("Text"); - } - - public void notifyEvent (AccessibleEventObject aEvent) - { - System.out.println (aEvent); - switch (aEvent.EventId) - { - case AccessibleEventId.CARET_CHANGED : - maCaretSpinnerModel.Update(); - Update (); - break; - - case AccessibleEventId.TEXT_CHANGED : - case AccessibleEventId.TEXT_SELECTION_CHANGED: - Update (); - break; - } - } - - public void actionPerformed (ActionEvent aEvent) - { - String sCommand = aEvent.getActionCommand(); - if (sCommand.equals ("select...")) - TextDialogFactory.CreateSelectionDialog (mxContext); - else if (sCommand.equals ("copy...")) - TextDialogFactory.CreateCopyDialog (mxContext); - } - - - - /** Create a string that is a list of all characters returned by the - getCharacter() method. - */ - private String GetCharacterArray () - { - // Do not show more than 30 characters. - int nCharacterCount = mxText.getCharacterCount(); - int nMaxDisplayCount = 30; - - // build up string - StringBuffer aCharacterArray = new StringBuffer(); - int nIndex = 0; - try - { - while (nIndex<nCharacterCount && nIndex<nMaxDisplayCount) - { - aCharacterArray.append (mxText.getCharacter (nIndex)); - if (nIndex < nCharacterCount-1) - aCharacterArray.append (","); - nIndex ++; - } - if (nMaxDisplayCount < nCharacterCount) - aCharacterArray.append (", ..."); - } - catch (IndexOutOfBoundsException e) - { - aCharacterArray.append ("; Index Out Of Bounds at index " + nIndex); - } - - return aCharacterArray.toString(); - } - - - - /** Iterate over all characters and translate their positions - back and forth. - */ - private String GetTextBoundsString () - { - StringBuffer aBuffer = new StringBuffer (); - try - { - // Iterate over all characters in the text. - int nCount = mxText.getCharacterCount(); - for (int i=0; i<nCount; i++) - { - // Get bounds for this character. - Rectangle aBBox = mxText.getCharacterBounds (i); - - // get the character by 'clicking' into the middle of - // the bounds - Point aMiddle = new Point(); - aMiddle.X = aBBox.X + (aBBox.Width / 2) - 1; - aMiddle.Y = aBBox.Y + (aBBox.Height / 2) - 1; - int nIndex = mxText.getIndexAtPoint (aMiddle); - - // get the character, or a '#' for an illegal index - if ((nIndex >= 0) && (nIndex < mxText.getCharacter(i))) - aBuffer.append (mxText.getCharacter(nIndex)); - else - aBuffer.append ('#'); - } - } - catch (IndexOutOfBoundsException aEvent) - { - // Ignore errors. - } - - return aBuffer.toString(); - } - - - - - private final static int BEFORE = -1; - private final static int AT = 0; - private final static int BEHIND = +1; - - private MutableTreeNode CreateNode (String sTitle, short nTextType) - { - DefaultMutableTreeNode aNode = new DefaultMutableTreeNode (sTitle); - - aNode.add (CreateSegmentNode ("Before", nTextType, BEFORE)); - aNode.add (CreateSegmentNode ("At", nTextType, AT)); - aNode.add (CreateSegmentNode ("Behind", nTextType, BEHIND)); - - return aNode; - } - - private MutableTreeNode CreateSegmentNode (String sTitle, short nTextType, int nWhere) - { - TextSegment aSegment; - int nTextLength = mxText.getCharacterCount(); - DefaultMutableTreeNode aNode = new DefaultMutableTreeNode (sTitle); - for (int nIndex=0; nIndex<=nTextLength; /* empty */) - { - aSegment = GetTextSegment (nIndex, nTextType, nWhere); - DefaultMutableTreeNode aSegmentNode = new DefaultMutableTreeNode ( - new StringBuffer ( - Integer.toString (nIndex) + " -> " - + Integer.toString (aSegment.SegmentStart) + " - " - + Integer.toString (aSegment.SegmentEnd) + " : " - + aSegment.SegmentText.toString())); - aNode.add (aSegmentNode); - if (nTextType == AccessibleTextType.ATTRIBUTE_RUN) - AddAttributeNodes (aSegmentNode, aSegment); - if (aSegment.SegmentEnd > nIndex) - nIndex = aSegment.SegmentEnd; - else - nIndex ++; - } - - return aNode; - } - - - private TextSegment GetTextSegment (int nIndex, short nTextType, int nWhere) - { - TextSegment aSegment; - - try - { - switch (nWhere) - { - case BEFORE: - aSegment = mxText.getTextBeforeIndex (nIndex, nTextType); - break; - - case AT: - aSegment = mxText.getTextAtIndex (nIndex, nTextType); - break; - - case BEHIND: - aSegment = mxText.getTextBehindIndex (nIndex, nTextType); - break; - - default: - aSegment = new TextSegment(); - aSegment.SegmentText = new String ("unknown position " + nWhere); - aSegment.SegmentStart = nIndex; - aSegment.SegmentStart = nIndex+1; - break; - } - } - catch (IndexOutOfBoundsException aException) - { - aSegment = new TextSegment (); - aSegment.SegmentText = new String ("Invalid index at ") + nIndex + " : " - + aException.toString(); - aSegment.SegmentStart = nIndex; - aSegment.SegmentEnd = nIndex+1; - } - catch (IllegalArgumentException aException) - { - aSegment = new TextSegment (); - aSegment.SegmentText = new String ("Illegal argument at ") + nIndex + " : " - + aException.toString(); - aSegment.SegmentStart = nIndex; - aSegment.SegmentEnd = nIndex+1; - } - - return aSegment; - } - - - /** Add to the given node one node for every attribute of the given segment. - */ - private void AddAttributeNodes ( - DefaultMutableTreeNode aNode, - TextSegment aSegment) - { - try - { - PropertyValue[] aValues = mxText.getCharacterAttributes ( - aSegment.SegmentStart, aAttributeList); - for (int i=0; i<aValues.length; i++) - aNode.add (new DefaultMutableTreeNode ( - aValues[i].Name + ": " + aValues[i].Value)); - } - catch (IndexOutOfBoundsException aException) - { - aNode.add (new DefaultMutableTreeNode ( - "caught IndexOutOfBoundsException while retrieveing attributes")); - } - } - - private XAccessibleText mxText; - private JLabel - maTextLabel, - maCharacterArrayLabel, - maCharacterCountLabel, - maSelectionLabel, - maBoundsLabel, - maCaretLineNoLabel, - maCaretLineTextLabel, - maLineNoFromCaretPosLabel, - maLineTextFromCaretPosLabel; - - private JSpinner maCaretPositionSpinner; - private JTree maTree; - private CaretSpinnerModel maCaretSpinnerModel; - - private static String[] aAttributeList = new String[] { - "CharBackColor", - "CharColor", - "CharEscapement", - "CharHeight", - "CharPosture", - "CharStrikeout", - "CharUnderline", - "CharWeight", - "ParaAdjust", - "ParaBottomMargin", - "ParaFirstLineIndent", - "ParaLeftMargin", - "ParaLineSpacing", - "ParaRightMargin", - "ParaTabStops"}; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java deleted file mode 100644 index 196ec3ccd..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java +++ /dev/null @@ -1,117 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import javax.swing.JComponent; -import javax.swing.JLabel; - - -/** This class is a convenience class for views to use the GridBagLayout. -*/ -class ViewGridLayout -{ - public ViewGridLayout (JComponent aComponent) - { - maComponent = aComponent; - maComponent.setLayout (new GridBagLayout()); - maComponent.setMinimumSize (new Dimension (300,30)); - maComponent.setMaximumSize (new Dimension (300,1000)); - mnCurrentLine = 0; - } - - public JLabel AddLabeledEntry (String sTitle) - { - return (JLabel)AddLabeledComponent (sTitle, new JLabel ("")); - } - - public JLabel AddLabeledString (String sTitle) - { - JLabel aLabel = AddLabeledEntry (sTitle); - aLabel.setBackground (new Color(220,220,220)); - aLabel.setOpaque (true); - return aLabel; - } - - public JComponent AddLabeledComponent (String sTitle, JComponent aComponent) - { - GridBagConstraints constraints = new GridBagConstraints (); - constraints.gridx = 0; - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridy = mnCurrentLine; - - JLabel aLabel = new JLabel(sTitle); - aLabel.setFont (saFont); - maComponent.add (aLabel, constraints); - constraints.gridx = 1; - constraints.weightx = 1; - constraints.fill = GridBagConstraints.NONE; - aComponent.setFont (saFont); - maComponent.add (aComponent, constraints); - - mnCurrentLine += 1; - - return aComponent; - } - - public JComponent AddComponent (JComponent aComponent) - { - GridBagConstraints constraints = new GridBagConstraints (); - constraints.gridx = 0; - constraints.gridwidth = 2; - constraints.weightx = 1; - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.HORIZONTAL; - constraints.gridy = mnCurrentLine; - - maComponent.add (aComponent, constraints); - - mnCurrentLine += 1; - - return aComponent; - } - - static public Font GetFont () - { - return saFont; - } - - static private Font saFont; - private int mnCurrentLine; - private JComponent maComponent; - - static - { - saFont = new Font ("Dialog", Font.PLAIN, 11); - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common deleted file mode 100644 index 38033b3ab..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common +++ /dev/null @@ -1,45 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JARFILES = jurt.jar unoil.jar ridl.jar -JAVAFILES = \ - ComponentView.java \ - ContextView.java \ - EditableTextView.java \ - EventMonitorView.java \ - FocusView.java \ - LayoutManager.java \ - ObjectView.java \ - ObjectViewContainer.java \ - ObjectViewContainerWindow.java \ - ParentView.java \ - SelectionView.java \ - ServiceInterfaceView.java \ - StateSetView.java \ - TableView.java \ - TextView.java \ - ViewGridLayout.java diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk deleted file mode 100644 index 0bfa48537..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk +++ /dev/null @@ -1,51 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/..$/.. -TARGET = awb_view -PACKAGE = org$/openoffice$/accessibility$/awb$/view - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" - -.INCLUDE : makefile.common - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -.ENDIF - -# --- Targets ------------------------------------------------------ - - -.INCLUDE : target.mk - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java deleted file mode 100644 index c6d7e09ea..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java +++ /dev/null @@ -1,122 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view.text; - -import java.lang.Integer; -import java.util.Vector; -import javax.swing.SpinnerModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.lang.IndexOutOfBoundsException; - - -/** A simple model for JSpinner objects that clips the spinner values to valid - text indices. -*/ -public class CaretSpinnerModel - implements SpinnerModel -{ - public CaretSpinnerModel (XAccessibleText xText) - { - mxText = xText; - maListeners = new Vector (); - } - - public void addChangeListener (ChangeListener aListener) - { - if (aListener != null) - maListeners.add (aListener); - } - - public void removeChangeListener (ChangeListener aListener) - { - maListeners.removeElement (aListener); - } - - public Object getNextValue () - { - if (mxText != null) - { - int nPosition = mxText.getCaretPosition(); - if (nPosition+1 <= mxText.getCharacterCount()) - return new Integer (nPosition+1); - } - return null; - } - - public Object getPreviousValue () - { - if (mxText != null) - { - int nPosition = mxText.getCaretPosition(); - if (nPosition > 0) - return new Integer (nPosition-1); - } - return null; - } - - public Object getValue () - { - if (mxText != null) - return new Integer (mxText.getCaretPosition()); - else - return null; - } - - public void setValue (Object aValue) - { - if (mxText != null) - if (aValue instanceof Integer) - { - try - { - if( ((Integer)aValue).intValue() != mxText.getCaretPosition() ) - mxText.setCaretPosition (((Integer)aValue).intValue()); - } - catch (IndexOutOfBoundsException aException) - { - } - } - } - - /** Call this method when the caret position has changes so that the model - can inform its listeners about it. - */ - public void Update () - { - ChangeEvent aEvent = new ChangeEvent (this); - for (int i=0; i<maListeners.size(); i++) - ((ChangeListener)maListeners.elementAt(i)).stateChanged (aEvent); - } - - private XAccessibleText mxText; - private Integer maValue; - private Vector maListeners; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile deleted file mode 100644 index 24eef34e2..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : package - -ROOT=../../../../.. -PACKAGE = org.openoffice.accessibility.awb.view.text -SUBDIRS = -include makefile.common - -include $(ROOT)/makefile.in - - -package : $(CLASS_FILES) diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java deleted file mode 100644 index 257cd34e3..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java +++ /dev/null @@ -1,208 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view.text; - -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.FlowLayout; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextArea; -import javax.swing.text.JTextComponent; - -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.accessibility.XAccessibleEditableText; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.uno.UnoRuntime; - - -/** - * Display a dialog with a text field and a pair of cancel/do-it buttons - */ -class TextActionDialog - extends JDialog - implements ActionListener -{ - public TextActionDialog ( - XAccessibleContext xContext, - String sExplanation, - String sTitle) - { - super();// AccessibilityWorkBench.Instance() ); - - mxContext = xContext; - msTitle = sTitle; - msExplanation = sExplanation; - Layout (); - setSize (350, 225); - - } - - - /** build dialog */ - protected void Layout() - { - setTitle (msTitle); - - // vertical stacking of the elements - Container aContent = getContentPane(); - // aContent.setLayout( new BorderLayout() ); - - // Label with explanation. - if (msExplanation.length() > 0) - aContent.add (new JLabel (msExplanation), BorderLayout.NORTH); - - // the text field - maText = new JTextArea(); - maText.setLineWrap (true); - maText.setEditable (false); - aContent.add (maText, BorderLayout.CENTER); - - XAccessibleText xText = (XAccessibleText)UnoRuntime.queryInterface( - XAccessibleText.class, mxContext); - String sText = xText.getText(); - maText.setText (sText); - maText.setRows (sText.length() / 40 + 1); - maText.setColumns (Math.min (Math.max (40, sText.length()), 20)); - - JPanel aButtons = new JPanel(); - aButtons.setLayout (new FlowLayout()); - maIndexToggle = new JCheckBox ("reverse selection"); - aButtons.add (maIndexToggle); - - JButton aActionButton = new JButton (msTitle); - aActionButton.setActionCommand ("Action"); - aActionButton.addActionListener (this); - aButtons.add (aActionButton); - - JButton aCancelButton = new JButton ("cancel"); - aCancelButton.setActionCommand ("Cancel"); - aCancelButton.addActionListener (this); - aButtons.add (aCancelButton); - - // add Panel with buttons - aContent.add (aButtons, BorderLayout.SOUTH); - } - - protected void Cancel() - { - hide(); - dispose(); - } - - public void actionPerformed(ActionEvent e) - { - String sCommand = e.getActionCommand(); - - if( "Cancel".equals( sCommand ) ) - Cancel(); - else if( "Action".equals( sCommand ) ) - Action(); - } - - - protected int GetSelectionStart() - { - return GetSelection(true); - } - protected int GetSelectionEnd() - { - return GetSelection(false); - } - private int GetSelection (boolean bStart) - { - if (bStart ^ maIndexToggle.isSelected()) - return maText.getSelectionStart(); - else - return maText.getSelectionEnd(); - } - - - - protected void Action () - { - String sError = null; - boolean bSuccess = true; - try - { - XAccessibleText xText = - (XAccessibleText)UnoRuntime.queryInterface( - XAccessibleText.class, mxContext); - if (xText != null) - bSuccess = bSuccess && TextAction (xText); - - XAccessibleEditableText xEditableText = - (XAccessibleEditableText)UnoRuntime.queryInterface( - XAccessibleEditableText.class, mxContext); - if (xEditableText != null) - bSuccess = bSuccess && EditableTextAction (xEditableText); - - if ( ! bSuccess) - sError = "Can't execute"; - } - catch (IndexOutOfBoundsException e) - { - sError = "Index out of bounds"; - } - - if (sError != null) - JOptionPane.showMessageDialog ( - this,// AccessibilityWorkBench.Instance(), - sError, - msTitle, - JOptionPane.ERROR_MESSAGE); - - Cancel(); - } - - /** override this for dialog-specific action */ - boolean TextAction (XAccessibleText xText) - throws IndexOutOfBoundsException - { - return true; - } - - boolean EditableTextAction (XAccessibleEditableText xText) - throws IndexOutOfBoundsException - { - return true; - } - - private XAccessibleContext mxContext; - protected JTextArea maText; - private String msTitle; - private String msExplanation; - private JCheckBox maIndexToggle; -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java deleted file mode 100644 index 05d8ff480..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java +++ /dev/null @@ -1,179 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view.text; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Graphics; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import javax.swing.BoxLayout; -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JColorChooser; -import javax.swing.JPanel; -import javax.swing.text.JTextComponent; - -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEditableText; -import com.sun.star.beans.PropertyValue; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.uno.UnoRuntime; - - -class TextAttributeDialog - extends TextActionDialog -{ - public TextAttributeDialog (XAccessibleContext xContext) - { - super (xContext, - "Choose attributes, select text, and press 'Set':", - "set"); - } - - protected void Layout () - { - super.Layout (); - - maForeground = Color.black; - maBackground = Color.white; - - JPanel aPanel = new JPanel(); - aPanel.setLayout (new BoxLayout (aPanel, BoxLayout.Y_AXIS)); - - maBoldCheckBox = new JCheckBox ("bold"); - maUnderlineCheckBox = new JCheckBox ("underline"); - maItalicsCheckBox = new JCheckBox ("italics"); - - JButton aForegroundButton = new JButton ("Foreground", - new TextAttributeDialog.ColorIcon(true)); - aForegroundButton.addActionListener (new ActionListener() - { - public void actionPerformed (ActionEvent aEvent) - { - maForeground = JColorChooser.showDialog ( - TextAttributeDialog.this, - "Select Foreground Color", - maForeground); - } - } ); - - JButton aBackgroundButton = new JButton("Background", - new TextAttributeDialog.ColorIcon(false)); - aBackgroundButton.addActionListener (new ActionListener() - { - public void actionPerformed (ActionEvent eEvent) - { - maBackground = JColorChooser.showDialog( - TextAttributeDialog.this, - "Select Background Color", - maBackground); - } - } ); - - aPanel.add (maBoldCheckBox); - aPanel.add (maUnderlineCheckBox); - aPanel.add (maItalicsCheckBox); - aPanel.add (aForegroundButton); - aPanel.add (aBackgroundButton); - - getContentPane().add (aPanel, BorderLayout.WEST); - } - - - /** edit the text */ - boolean EditableTextAction (XAccessibleEditableText xText) - throws IndexOutOfBoundsException - { - PropertyValue[] aSequence = new PropertyValue[6]; - aSequence[0] = new PropertyValue(); - aSequence[0].Name = "CharWeight"; - aSequence[0].Value = new Integer (maBoldCheckBox.isSelected() ? 150 : 100); - aSequence[1] = new PropertyValue(); - aSequence[1].Name = "CharUnderline"; - aSequence[1].Value = new Integer (maUnderlineCheckBox.isSelected() ? 1 : 0); - aSequence[2] = new PropertyValue(); - aSequence[2].Name = "CharBackColor"; - aSequence[2].Value = new Integer (maBackground.getRGB()); - aSequence[3] = new PropertyValue(); - aSequence[3].Name = "CharColor"; - aSequence[3].Value = new Integer (maForeground.getRGB()); - aSequence[4] = new PropertyValue(); - aSequence[4].Name = "CharPosture"; - aSequence[4].Value = new Integer (maItalicsCheckBox.isSelected() ? 1 : 0); - aSequence[5] = new PropertyValue(); - aSequence[5].Name = "CharBackTransparent"; - aSequence[5].Value = new Boolean (false); - - return xText.setAttributes ( - GetSelectionStart(), - GetSelectionEnd(), - aSequence); - } - - class ColorIcon - implements Icon - { - public ColorIcon(boolean bWhich) { bForeground = bWhich; } - public int getIconHeight() { return nHeight; } - public int getIconWidth() { return nWidth; } - public void paintIcon (Component c, Graphics g, int x, int y) - { - g.setColor( getColor() ); - g.fillRect( x, y, nHeight, nWidth ); - g.setColor( c.getForeground() ); - g.drawRect( x, y, nHeight, nWidth ); - } - Color getColor() - { - if (bForeground) - return maForeground; - else - return maBackground; - } - - private static final int nHeight = 16; - private static final int nWidth = 16; - private boolean bForeground; - } - - - - - private JCheckBox - maBoldCheckBox, - maUnderlineCheckBox, - maItalicsCheckBox; - private Color - maForeground, - maBackground; - -} - diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java deleted file mode 100644 index 70371324d..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java +++ /dev/null @@ -1,136 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view.text; - -import javax.swing.JDialog; -import javax.swing.text.JTextComponent; - -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEditableText; -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.uno.UnoRuntime; - - -/** Factory for dialogs of the text views. -*/ -public class TextDialogFactory -{ - static public JDialog CreateSelectionDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextActionDialog( - xContext, - "Select range:", - "select") - { - boolean TextAction (XAccessibleText xText) - throws IndexOutOfBoundsException - { - return xText.setSelection( - GetSelectionStart(), - GetSelectionEnd() ); - } - }; - if (aDialog != null) - aDialog.show(); - return aDialog; - } - - static public JDialog CreateCopyDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextActionDialog( - xContext, - "Select range and copy:", - "copy") - { - boolean TextAction (XAccessibleText xText) - throws IndexOutOfBoundsException - { - return xText.copyText( - GetSelectionStart(), - GetSelectionEnd()); - } - }; - if (aDialog != null) - aDialog.show(); - return aDialog; - } - static public JDialog CreateCutDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextActionDialog( - xContext, - "Select range and cut:", - "cut") - { - boolean EditableTextAction (XAccessibleEditableText xText) - throws IndexOutOfBoundsException - { - return xText.cutText( - GetSelectionStart(), - GetSelectionEnd() ); - } - }; - if (aDialog != null) - aDialog.show(); - return aDialog; - } - static public JDialog CreatePasteDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextActionDialog ( - xContext, - "Place Caret and paste:", - "paste") - { - boolean EditableTextAction (XAccessibleEditableText xText) - throws IndexOutOfBoundsException - { - return xText.pasteText(maText.getCaretPosition()); - } - }; - if (aDialog != null) - aDialog.show(); - return aDialog; - } - static public JDialog CreateEditDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextEditDialog ( - xContext, - "Edit text:", - "edit"); - if (aDialog != null) - aDialog.show(); - return aDialog; - } - static public JDialog CreateFormatDialog (XAccessibleContext xContext) - { - JDialog aDialog = new TextAttributeDialog (xContext); - if (aDialog != null) - aDialog.show(); - return aDialog; - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java deleted file mode 100644 index 9d5aec464..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java +++ /dev/null @@ -1,122 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.awb.view.text; - -import javax.swing.text.JTextComponent; - -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleEditableText; -import com.sun.star.lang.IndexOutOfBoundsException; -import com.sun.star.uno.UnoRuntime; - - -class TextEditDialog - extends TextActionDialog -{ - public TextEditDialog ( - XAccessibleContext xContext, - String sExplanation, - String sTitle ) - { - super (xContext, sExplanation, sTitle); - } - - protected void Layout() - { - super.Layout(); - maText.setEditable (true); - } - - - /** edit the text */ - boolean EditableTextAction (XAccessibleEditableText xText) - { - return UpdateText (xText, maText.getText()); - } - - - /** update the text */ - boolean UpdateText (XAccessibleEditableText xText, String sNew) - { - boolean bResult = false; - - String sOld = xText.getText(); - - // false alarm? Early out if no change was done! - if ( ! sOld.equals (sNew)) - { - - // 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)); - - try - { - // edit the text, and use - // (set|insert|delete|replace)Text as needed - if( nFront+nBack == 0 ) - bResult = xText.setText( sIns ); - else if( sDel.length() == 0 ) - bResult = xText.insertText( sIns, nFront ); - else if( sIns.length() == 0 ) - bResult = xText.deleteText( nFront, sOld.length()-nBack ); - else - bResult = xText.replaceText(nFront, sOld.length()-nBack,sIns); - } - catch( IndexOutOfBoundsException aException) - { - } - } - - return bResult; - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common deleted file mode 100644 index 7d9a5e8fe..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common +++ /dev/null @@ -1,34 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JARFILES = jurt.jar unoil.jar ridl.jar -JAVAFILES = \ - CaretSpinnerModel.java \ - TextActionDialog.java \ - TextEditDialog.java \ - TextAttributeDialog.java \ - TextDialogFactory.java diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk deleted file mode 100644 index 1ec7da266..000000000 --- a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk +++ /dev/null @@ -1,51 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/..$/..$/.. -TARGET = awb_view_text -PACKAGE = org$/openoffice$/accessibility$/awb$/view$/text - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" - -.INCLUDE : makefile.common - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -.ENDIF - -# --- Targets ------------------------------------------------------ - - -.INCLUDE : target.mk - diff --git a/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java b/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java deleted file mode 100644 index 74780b971..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java +++ /dev/null @@ -1,92 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package org.openoffice.accessibility.misc; - -import com.sun.star.lang.EventObject; - -import com.sun.star.accessibility.AccessibleEventObject; -import com.sun.star.accessibility.XAccessibleEventBroadcaster; -import com.sun.star.accessibility.XAccessibleEventListener; - -/** - * - */ -public class AccessibleEventMulticaster implements XAccessibleEventListener { - - private final XAccessibleEventListener a; - private final XAccessibleEventListener b; - - /** Creates a new instance of AccessibleEventMulticaster */ - protected AccessibleEventMulticaster(XAccessibleEventListener a, - XAccessibleEventListener b) { - this.a = a; - this.b = b; - } - - protected XAccessibleEventListener remove(XAccessibleEventListener l) { - if (l == a) - return b; - if (l == b) - return a; - XAccessibleEventListener a2 = remove(a, l); - XAccessibleEventListener b2 = remove(b, l); - if (a2 == a && b2 == b) { - return this; // not found - } - return add(a2, b2); - } - - public void notifyEvent(AccessibleEventObject accessibleEventObject) { - a.notifyEvent(accessibleEventObject); - b.notifyEvent(accessibleEventObject); - } - - public void disposing(EventObject eventObject) { - a.disposing(eventObject); - b.disposing(eventObject); - } - - public static XAccessibleEventListener add(XAccessibleEventListener a, XAccessibleEventListener b) { - if (a == null) - return b; - if (b == null) - return a; - return new AccessibleEventMulticaster(a,b); - } - - public static XAccessibleEventListener remove(XAccessibleEventListener l, XAccessibleEventListener oldl) { - if (l == oldl || l == null) { - return null; - } else if (l instanceof AccessibleEventMulticaster) { - return ((AccessibleEventMulticaster) l).remove(oldl); - } else { - return l; - } - } - -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Connector.java b/accessibility/workben/org/openoffice/accessibility/misc/Connector.java deleted file mode 100644 index de188676e..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/Connector.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Timer; -import java.util.TimerTask; -import java.util.Vector; - - -/** Wait for an Office application and connect to it. -*/ -public class Connector - extends TimerTask -{ - final public static long snDelay = 3000; - - public Connector () - { - maTimer = new Timer (true); - maListeners = new Vector(); - run (); - } - - public void AddConnectionListener (ActionListener aListener) - { - SimpleOffice aOffice = SimpleOffice.Instance(); - if (aOffice!=null && aOffice.IsConnected()) - aListener.actionPerformed ( - new ActionEvent (aOffice,0,"<connected>")); - maListeners.add (aListener); - } - - public void run () - { - SimpleOffice aOffice = SimpleOffice.Instance(); - if (aOffice!=null && !aOffice.IsConnected()) - if ( ! aOffice.Connect()) - maTimer.schedule (this, snDelay); - else - { - ActionEvent aEvent = new ActionEvent (aOffice,0,"<connected>"); - for (int i=0; i<maListeners.size(); i++) - ((ActionListener)maListeners.elementAt(i)).actionPerformed( - aEvent); - } - } - - Timer maTimer; - Vector maListeners; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java b/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java deleted file mode 100644 index f6cf042d9..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java +++ /dev/null @@ -1,421 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.lang.Thread; -import java.io.PrintStream; - -import com.sun.star.awt.Rectangle; -import com.sun.star.awt.XWindow; - -import com.sun.star.beans.Property; -import com.sun.star.beans.PropertyValue; -import com.sun.star.beans.XPropertySet; -import com.sun.star.beans.XPropertySetInfo; - -import com.sun.star.container.XIndexAccess; -import com.sun.star.container.XChild; -import com.sun.star.container.XEnumerationAccess; -import com.sun.star.container.XEnumeration; - -import com.sun.star.frame.XComponentLoader; -import com.sun.star.frame.XController; -import com.sun.star.frame.XDesktop; -import com.sun.star.frame.XFrame; -import com.sun.star.frame.XTasksSupplier; -import com.sun.star.frame.XTask; - -import com.sun.star.lang.XComponent; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XServiceInfo; -import com.sun.star.lang.XServiceName; -import com.sun.star.lang.XTypeProvider; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XInterface; -import com.sun.star.uno.Type; - -import com.sun.star.drawing.XDrawView; -import com.sun.star.drawing.XDrawPage; -import com.sun.star.drawing.XShapes; -import com.sun.star.drawing.XShape; -import com.sun.star.drawing.XShapeDescriptor; - -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleRelationSet; -import com.sun.star.accessibility.XAccessibleStateSet; - -public class InformationWriter -{ - public InformationWriter (PrintStream aOut) - { - maOut = aOut; - } - - public void drawPageTest (XInterface xPage) - { - try - { - printProperty (xPage, "BorderBottom ", "BorderBottom"); - printProperty (xPage, "BorderLeft ", "BorderLeft"); - printProperty (xPage, "BorderRight ", "BorderRight"); - printProperty (xPage, "BorderTop ", "BorderTop"); - printProperty (xPage, "Height ", "Height"); - printProperty (xPage, "Width ", "Width"); - printProperty (xPage, "Number ", "Number"); - } - catch (Exception e) - { - System.out.println ("caught exception while testing draw page:" + e); - } - } - - public void printProperty (XInterface xObject, String prefix, String name) - { - try - { - XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface( - XPropertySet.class, xObject); - maOut.println (prefix + - xPropertySet.getPropertyValue (name)); - } - catch (Exception e) - { - maOut.println ("caught exception while getting property " - + name + " : " + e); - } - } - - - - public void showShapes (XDrawPage xPage) - { - try - { - XIndexAccess xShapeList = (XIndexAccess) UnoRuntime.queryInterface( - XIndexAccess.class, xPage); - - maOut.println ("There are " + xShapeList.getCount() - + " shapes"); - for (int i=0; i<xShapeList.getCount(); i++) - { - XShape xShape = (XShape) UnoRuntime.queryInterface( - XShape.class, xShapeList.getByIndex (i)); - - XShapeDescriptor xShapeDescriptor = - (XShapeDescriptor) UnoRuntime.queryInterface( - XShapeDescriptor.class, xShape); - String sName = xShapeDescriptor.getShapeType (); - maOut.println (" shape " + i + " : " + sName); - - XPropertySet xPropertySet = - (XPropertySet) UnoRuntime.queryInterface( - XPropertySet.class, xShape); - Integer nZOrder = - (Integer) xPropertySet.getPropertyValue ("ZOrder"); - maOut.println (" zorder = " + nZOrder); - } - } - catch (Exception e) - { - maOut.println ("caught exception in showShapes: " + e); - } - } - - - - - /** @descr Print all available services of the given object to the - standard output. - */ - public void showServices (XInterface xObject) - { - try - { - maOut.println ("Services:"); - XMultiServiceFactory xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface ( - XMultiServiceFactory.class, - xObject - ); - if (xMSF == null) - maOut.println (" object does not support interface XMultiServiceFactory"); - else - { - String[] sServiceNames = xMSF.getAvailableServiceNames (); - maOut.println (" object can create " - + sServiceNames.length + " services"); - for (int i=0; i<sServiceNames.length; i++) - maOut.println (" service " + i + " : " + sServiceNames[i]); - } - } - catch (Exception e) - { - maOut.println ("caught exception in showServices : " + e); - } - } - - /** @descr Print the service and implementation name of the given - object. - */ - public void showInfo (XInterface xObject) - { - try - { - System.out.println ("Info:"); - // Use interface XServiceName to retrieve name of (main) service. - XServiceName xSN = (XServiceName) UnoRuntime.queryInterface ( - XServiceName.class, xObject); - if (xSN == null) - maOut.println (" interface XServiceName not supported"); - else - { - maOut.println (" Service name : " + xSN.getServiceName ()); - } - - // Use interface XServiceInfo to retrieve information about - // supported services. - XServiceInfo xSI = (XServiceInfo) UnoRuntime.queryInterface ( - XServiceInfo.class, xObject); - if (xSI == null) - maOut.println (" interface XServiceInfo not supported"); - else - { - maOut.println (" Implementation name : " - + xSI.getImplementationName ()); - } - } - catch (Exception e) - { - maOut.println ("caught exception in showInfo : " + e); - } - } - - - - - /** @descr Print information about supported interfaces. - */ - public void showInterfaces (XInterface xObject) - { - try - { - maOut.println ("Interfaces:"); - // Use interface XTypeProvider to retrieve a list of supported - // interfaces. - XTypeProvider xTP = (XTypeProvider) UnoRuntime.queryInterface ( - XTypeProvider.class, xObject); - if (xTP == null) - maOut.println (" interface XTypeProvider not supported"); - else - { - Type[] aTypeList = xTP.getTypes (); - maOut.println (" object supports " + aTypeList.length - + " interfaces"); - for (int i=0; i<aTypeList.length; i++) - maOut.println (" " + i + " : " - + aTypeList[i].getTypeName()); - } - } - catch (Exception e) - { - maOut.println ("caught exception in showInterfaces : " + e); - } - } - - - /** @descr Print information concerning the accessibility of the given - object. - */ - public boolean showAccessibility (XInterface xObject, int depth) - { - try - { - // Create indentation string. - String sIndent = ""; - while (depth-- > 0) - sIndent += " "; - - // Get XAccessibleContext object if given object does not - // already support this interface. - XAccessibleContext xContext - = (XAccessibleContext) UnoRuntime.queryInterface ( - XAccessibleContext.class, xObject); - if (xContext == null) - { - XAccessible xAccessible - = (XAccessible) UnoRuntime.queryInterface ( - XAccessible.class, xObject); - if (xAccessible == null) - { - maOut.println (sIndent + "given object " + xObject - + " is not accessible"); - return false; - } - else - xContext = xAccessible.getAccessibleContext(); - } - - // Print information about the accessible context. - if (xContext != null) - { - maOut.println (sIndent + "Name : " - + xContext.getAccessibleName()); - maOut.println (sIndent + "Description : " - + xContext.getAccessibleDescription()); - maOut.println (sIndent + "Role : " - + xContext.getAccessibleRole()); - String sHasParent; - if (xContext.getAccessibleParent() != null) - { - maOut.println (sIndent + "Has parent : yes"); - maOut.println (sIndent + "Parent index : " - + xContext.getAccessibleIndexInParent()); - } - else - maOut.println (sIndent + "Has parent : no"); - maOut.println (sIndent + "Child count : " - + xContext.getAccessibleChildCount()); - maOut.print (sIndent + "Relation set : "); - XAccessibleRelationSet xRelationSet - = xContext.getAccessibleRelationSet(); - if (xRelationSet != null) - { - maOut.print (xRelationSet.getRelationCount() + " ("); - for (int i=0; i<xRelationSet.getRelationCount(); i++) - { - if (i > 0) - maOut.print (", "); - maOut.print (xRelationSet.getRelation(i).toString()); - } - maOut.println (")"); - } - else - maOut.println ("no relation set"); - - maOut.print (sIndent + "State set : "); - XAccessibleStateSet xStateSet = - xContext.getAccessibleStateSet(); - if (xStateSet != null) - { - XIndexAccess xStates = - (XIndexAccess) UnoRuntime.queryInterface ( - XIndexAccess.class, xStateSet); - maOut.print (xStates.getCount() + " ("); - for (int i=0; i<xStates.getCount(); i++) - { - if (i > 0) - maOut.print (", "); - maOut.print (xStates.getByIndex(i).toString()); - } - maOut.println (")"); - } - else - maOut.println ("no state set"); - - showAccessibleComponent (xContext, sIndent); - } - else - maOut.println ("object has no accessible context."); - - // showInfo (xContext); - // showServices (xContext); - // showInterfaces (xContext); - } - catch (Exception e) - { - System.out.println ("caught exception in showAccessibility :" + e); - } - return true; - } - - - - - /** @descr Print information about the given accessible component. - */ - public void showAccessibleComponent (XInterface xObject, String sIndent) - { - try - { - XAccessibleComponent xComponent = - (XAccessibleComponent) UnoRuntime.queryInterface ( - XAccessibleComponent.class, xObject); - - // Print information about the accessible context. - if (xComponent != null) - { - maOut.println (sIndent + "Position : " - + xComponent.getLocation().X+", " - + xComponent.getLocation().Y); - maOut.println (sIndent + "Screen position : " - + xComponent.getLocationOnScreen().X+", " - + xComponent.getLocationOnScreen().Y); - maOut.println (sIndent + "Size : " - + xComponent.getSize().Width+", " - + xComponent.getSize().Height); - } - } - catch (Exception e) - { - System.out.println ( - "caught exception in showAccessibleComponent : " + e); - } - } - - - /** Show a textual representation of the accessibility subtree rooted in - xRoot. - */ - public boolean showAccessibilityTree (XAccessible xRoot, int depth) - { - try - { - if ( ! showAccessibility (xRoot, depth)) - return false; - - String sIndent = ""; - for (int i=0; i<depth; i++) - sIndent += " "; - - // Iterate over children and show them. - XAccessibleContext xContext = xRoot.getAccessibleContext(); - if (xContext != null) - { - int n = xContext.getAccessibleChildCount(); - for (int i=0; i<n; i++) - { - maOut.println (sIndent + "child " + i + " :"); - showAccessibilityTree (xContext.getAccessibleChild(i),depth+1); - } - } - else - maOut.println ("Accessible object has no context"); - } - catch (Exception e) - { - System.out.println ( - "caught exception in showAccessibleTree : " + e); - return false; - } - - return true; - } - - public void showProperties (XInterface xObject) - { - XPropertySet xSet = (XPropertySet) UnoRuntime.queryInterface ( - XPropertySet.class, xObject); - if (xSet == null) - maOut.println ("object does not support XPropertySet"); - else - { - XPropertySetInfo xInfo = xSet.getPropertySetInfo (); - Property[] aProperties = xInfo.getProperties (); - int n = aProperties.length; - for (int i=0; i<n; i++) - maOut.println (i + " : " + aProperties[i].Name +", " + aProperties[i].Type); - } - } - - private PrintStream maOut; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Makefile b/accessibility/workben/org/openoffice/accessibility/misc/Makefile deleted file mode 100644 index ce9091d5d..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -all : package - -ROOT=../../../.. -PACKAGE = org.openoffice.accessibility.misc -SUBDIRS = - -include makefile.common - -include $(ROOT)/makefile.in - -package: subdirs $(CLASS_FILES) diff --git a/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java b/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java deleted file mode 100644 index 1060d91eb..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.awt.Font; -import java.awt.Rectangle; -import java.awt.Color; -import java.awt.Graphics; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JScrollBar; - - - -/** A message area displays text in a scrollable text widget. It is a - singleton. Other objects can access it directly to display messages. -*/ -public class MessageArea - extends JScrollPane -{ - public static synchronized MessageArea Instance () - { - if (saInstance == null) - saInstance = new MessageArea (); - return saInstance; - } - - - - - /** Create a new message area. This method is private because the class is - a singleton and may therefore not be instanciated from the outside. - */ - private MessageArea () - { - maText = new JTextArea(); - maText.setBackground (new Color (255,250,240)); - maText.setFont (new Font ("Helvetica", Font.PLAIN, 9)); - setViewportView (maText); - setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); - setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - - printMessage ( - "class path is " + System.getProperty ("java.class.path") + "\n"); - } - - - - - /** Show the given string at the end of the message area and scroll to make - it visible. - */ - public static synchronized void print (String aMessage) - { - print (0, aMessage); - } - - - - - /** Show the given string at the end of the message area and scroll to make - it visible. Indent the string as requested. - */ - public static synchronized void print (int nIndentation, String aMessage) - { - while (nIndentation-- > 0) - aMessage = " " + aMessage; - Instance().printMessage(aMessage); - } - - - - - /** Show the given string at the end of the message area and scroll to make - it visible. - */ - public static void println (String aMessage) - { - println (0, aMessage); - } - - - - - /** Show the given string at the end of the message area and scroll to make - it visible. - */ - public static void println (int nIndentation, String aMessage) - { - print (nIndentation, aMessage+"\n"); - } - - - - - public void paintComponent (Graphics g) - { - synchronized (g) - { - JScrollBar sb = getVerticalScrollBar(); - if (sb != null) - { - int nScrollBarValue = sb.getMaximum() - sb.getVisibleAmount() - 1; - sb.setValue (nScrollBarValue); - } - super.paintComponent (g); - } - } - - - - - /** Append the given string to the end of the text and scroll so that it - becomes visible. This is an internal method. Use one of the static - and public ones. - */ - private synchronized void printMessage (String aMessage) - { - maText.append (aMessage); - } - - - - - private static MessageArea saInstance = null; - private JTextArea maText; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java b/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java deleted file mode 100644 index db8d2b0ab..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java +++ /dev/null @@ -1,263 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.util.HashMap; -import com.sun.star.accessibility.AccessibleStateType; -import com.sun.star.accessibility.AccessibleEventId; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.AccessibleRelationType; - - -/** Provide names for several accessibility constants groups. -*/ -public class NameProvider -{ - /** Return the name of the specified state. - @param nStateId - Id of the state for which to return its name. This is one of - the ids listed in the <type>AccessibleStateType</const> - constants group. - @return - Returns the name of the specified state. When an invalid or - unknown state id is given then a special string is returned that - says that the state does not exist. - */ - public static String getStateName (int nStateId) - { - String sStateName = (String)maStateMap.get (new Integer(nStateId)); - if (sStateName == null) - sStateName = new String ("<unknown state " + nStateId + ">"); - return sStateName; - } - - - /** Return the name of the specified event. - @param nEventId - Id of the event type for which to return its name. This is one - of the ids listed in the <type>AccessibleEventId</const> - constants group. - @return - Returns the name of the specified event type or an empty string - if an invalid / unknown event id was given. - */ - public static String getEventName (int nEventId) - { - return (String)maEventMap.get (new Integer(nEventId)); - } - - - /** Return the name of the specified role. - @param nRole - Id of the role for which to return its name. This is one of - the ids listed in the <type>AccessibleRole</const> - constants group. - @return - Returns the name of the specified role or an empty string if an - invalid / unknown role id was given. - */ - public static String getRoleName (int nRole) - { - return (String)maRoleMap.get (new Integer(nRole)); - } - - - /** Return the name of the specified relation. - @param nRelation - Id of the relation for which to return its name. This is one of - the ids listed in the <type>AccessibleRelationType</const> - constants group. - @return - Returns the name of the specified relation type or an empty - string if an invalid / unknown role id was given. - */ - public static String getRelationName (int nRelation) - { - return (String)maRelationMap.get (new Integer(nRelation)); - } - - - private static HashMap maStateMap = new HashMap(); - private static HashMap maEventMap = new HashMap(); - private static HashMap maRoleMap = new HashMap(); - private static HashMap maRelationMap = new HashMap(); - - static { - maStateMap.put (new Integer (AccessibleStateType.INVALID), "INVALID"); - maStateMap.put (new Integer (AccessibleStateType.ACTIVE), "ACTIVE"); - maStateMap.put (new Integer (AccessibleStateType.ARMED), "ARMED"); - maStateMap.put (new Integer (AccessibleStateType.BUSY), "BUSY"); - maStateMap.put (new Integer (AccessibleStateType.CHECKED), "CHECKED"); - // maStateMap.put (new Integer (AccessibleStateType.COLLAPSED), "COLLAPSED"); - maStateMap.put (new Integer (AccessibleStateType.DEFUNC), "DEFUNC"); - maStateMap.put (new Integer (AccessibleStateType.EDITABLE), "EDITABLE"); - maStateMap.put (new Integer (AccessibleStateType.ENABLED), "ENABLED"); - maStateMap.put (new Integer (AccessibleStateType.EXPANDABLE), "EXPANDABLE"); - maStateMap.put (new Integer (AccessibleStateType.EXPANDED), "EXPANDED"); - maStateMap.put (new Integer (AccessibleStateType.FOCUSABLE), "FOCUSABLE"); - maStateMap.put (new Integer (AccessibleStateType.FOCUSED), "FOCUSED"); - maStateMap.put (new Integer (AccessibleStateType.HORIZONTAL), "HORIZONTAL"); - maStateMap.put (new Integer (AccessibleStateType.ICONIFIED), "ICONIFIED"); - maStateMap.put (new Integer (AccessibleStateType.MODAL), "MODAL"); - maStateMap.put (new Integer (AccessibleStateType.MULTI_LINE), "MULTI_LINE"); - maStateMap.put (new Integer (AccessibleStateType.MULTI_SELECTABLE), "MULTI_SELECTABLE"); - maStateMap.put (new Integer (AccessibleStateType.OPAQUE), "OPAQUE"); - maStateMap.put (new Integer (AccessibleStateType.PRESSED), "PRESSED"); - maStateMap.put (new Integer (AccessibleStateType.RESIZABLE), "RESIZABLE"); - maStateMap.put (new Integer (AccessibleStateType.SELECTABLE), "SELECTABLE"); - maStateMap.put (new Integer (AccessibleStateType.SELECTED), "SELECTED"); - maStateMap.put (new Integer (AccessibleStateType.SENSITIVE), "SENSITIVE"); - maStateMap.put (new Integer (AccessibleStateType.SHOWING), "SHOWING"); - maStateMap.put (new Integer (AccessibleStateType.SINGLE_LINE), "SINGLE_LINE"); - maStateMap.put (new Integer (AccessibleStateType.STALE), "STALE"); - maStateMap.put (new Integer (AccessibleStateType.TRANSIENT), "TRANSIENT"); - maStateMap.put (new Integer (AccessibleStateType.VERTICAL), "VERTICAL"); - maStateMap.put (new Integer (AccessibleStateType.VISIBLE), "VISIBLE"); - maStateMap.put (new Integer (AccessibleStateType.MANAGES_DESCENDANTS), - "MANAGES_DESCENDANTS"); - //maStateMap.put (new Integer (AccessibleStateType.INCONSISTENT),"INCONSISTENT"); - - - maEventMap.put (new Integer (0), - "[UNKNOWN]"); - maEventMap.put (new Integer (AccessibleEventId.NAME_CHANGED), - "NAME_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.DESCRIPTION_CHANGED), - "DESCRIPTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.ACTION_CHANGED), - "ACTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.STATE_CHANGED), - "STATE_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.ACTIVE_DESCENDANT_CHANGED), - "ACTIVE_DESCENDANT_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.BOUNDRECT_CHANGED), - "BOUNDRECT_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CHILD), - "CHILD"); - maEventMap.put (new Integer (AccessibleEventId.INVALIDATE_ALL_CHILDREN), - "INVALIDATE_ALL_CHILDREN"); - maEventMap.put (new Integer (AccessibleEventId.SELECTION_CHANGED), - "SELECTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.VISIBLE_DATA_CHANGED), - "VISIBLE_DATA_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.VALUE_CHANGED), - "VALUE_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CONTENT_FLOWS_FROM_RELATION_CHANGED), - "CONTENT_FLOWS_FROM_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CONTENT_FLOWS_TO_RELATION_CHANGED), - "CONTENT_FLOWS_TO_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CONTROLLED_BY_RELATION_CHANGED), - "CONTROLLED_BY_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CONTROLLER_FOR_RELATION_CHANGED), - "CONTROLLER_FOR_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.LABEL_FOR_RELATION_CHANGED), - "LABEL_FOR_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.LABELED_BY_RELATION_CHANGED), - "LABELED_BY_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.MEMBER_OF_RELATION_CHANGED), - "MEMBER_OF_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.SUB_WINDOW_OF_RELATION_CHANGED), - "SUB_WINDOW_OF_RELATION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.CARET_CHANGED), - "CARET_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TEXT_SELECTION_CHANGED), - "TEXT_SELECTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TEXT_CHANGED), - "TEXT_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TEXT_ATTRIBUTE_CHANGED), - "TEXT_ATTRIBUTE_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.HYPERTEXT_CHANGED), - "HYPERTEXT_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_CAPTION_CHANGED), - "TABLE_CAPTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_COLUMN_DESCRIPTION_CHANGED), - "TABLE_COLUMN_DESCRIPTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_COLUMN_HEADER_CHANGED), - "TABLE_COLUMN_HEADER_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_MODEL_CHANGED), - "TABLE_MODEL_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_ROW_DESCRIPTION_CHANGED), - "TABLE_ROW_DESCRIPTION_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_ROW_HEADER_CHANGED), - "TABLE_ROW_HEADER_CHANGED"); - maEventMap.put (new Integer (AccessibleEventId.TABLE_SUMMARY_CHANGED), - "TABLE_SUMMARY_CHANGED"); - - maRoleMap.put (new Integer(AccessibleRole.UNKNOWN), "UNKNOWN"); - maRoleMap.put (new Integer (AccessibleRole.UNKNOWN), "UNKNOWN"); - maRoleMap.put (new Integer (AccessibleRole.ALERT), "ALERT"); - maRoleMap.put (new Integer (AccessibleRole.COLUMN_HEADER), "COLUMN_HEADER"); - maRoleMap.put (new Integer (AccessibleRole.CANVAS), "CANVAS"); - maRoleMap.put (new Integer (AccessibleRole.CHECK_BOX), "CHECK_BOX"); - maRoleMap.put (new Integer (AccessibleRole.CHECK_MENU_ITEM), "CHECK_MENU_ITEM"); - maRoleMap.put (new Integer (AccessibleRole.COLOR_CHOOSER), "COLOR_CHOOSER"); - maRoleMap.put (new Integer (AccessibleRole.COMBO_BOX), "COMBO_BOX"); - maRoleMap.put (new Integer (AccessibleRole.DESKTOP_ICON), "DESKTOP_ICON"); - maRoleMap.put (new Integer (AccessibleRole.DESKTOP_PANE), "DESKTOP_PANE"); - maRoleMap.put (new Integer (AccessibleRole.DIRECTORY_PANE), "DIRECTORY_PANE"); - maRoleMap.put (new Integer (AccessibleRole.DIALOG), "DIALOG"); - maRoleMap.put (new Integer (AccessibleRole.DOCUMENT), "DOCUMENT"); - maRoleMap.put (new Integer (AccessibleRole.EMBEDDED_OBJECT), "EMBEDDED_OBJECT"); - maRoleMap.put (new Integer (AccessibleRole.END_NOTE), "END_NOTE"); - maRoleMap.put (new Integer (AccessibleRole.FILE_CHOOSER), "FILE_CHOOSER"); - maRoleMap.put (new Integer (AccessibleRole.FILLER), "FILLER"); - maRoleMap.put (new Integer (AccessibleRole.FONT_CHOOSER), "FONT_CHOOSER"); - maRoleMap.put (new Integer (AccessibleRole.FOOTER), "FOOTER"); - maRoleMap.put (new Integer (AccessibleRole.FOOTNOTE), "FOOTNOTE"); - maRoleMap.put (new Integer (AccessibleRole.FRAME), "FRAME"); - maRoleMap.put (new Integer (AccessibleRole.GLASS_PANE), "GLASS_PANE"); - maRoleMap.put (new Integer (AccessibleRole.GRAPHIC), "GRAPHIC"); - maRoleMap.put (new Integer (AccessibleRole.GROUP_BOX), "GROUP_BOX"); - maRoleMap.put (new Integer (AccessibleRole.HEADER), "HEADER"); - maRoleMap.put (new Integer (AccessibleRole.HEADING), "HEADING"); - maRoleMap.put (new Integer (AccessibleRole.HYPER_LINK), "HYPER_LINK"); - maRoleMap.put (new Integer (AccessibleRole.ICON), "ICON"); - maRoleMap.put (new Integer (AccessibleRole.INTERNAL_FRAME), "INTERNAL_FRAME"); - maRoleMap.put (new Integer (AccessibleRole.LABEL), "LABEL"); - maRoleMap.put (new Integer (AccessibleRole.LAYERED_PANE), "LAYERED_PANE"); - maRoleMap.put (new Integer (AccessibleRole.LIST), "LIST"); - maRoleMap.put (new Integer (AccessibleRole.LIST_ITEM), "LIST_ITEM"); - maRoleMap.put (new Integer (AccessibleRole.MENU), "MENU"); - maRoleMap.put (new Integer (AccessibleRole.MENU_BAR), "MENU_BAR"); - maRoleMap.put (new Integer (AccessibleRole.MENU_ITEM), "MENU_ITEM"); - maRoleMap.put (new Integer (AccessibleRole.OPTION_PANE), "OPTION_PANE"); - maRoleMap.put (new Integer (AccessibleRole.PAGE_TAB), "PAGE_TAB"); - maRoleMap.put (new Integer (AccessibleRole.PAGE_TAB_LIST), "PAGE_TAB_LIST"); - maRoleMap.put (new Integer (AccessibleRole.PANEL), "PANEL"); - maRoleMap.put (new Integer (AccessibleRole.PARAGRAPH), "PARAGRAPH"); - maRoleMap.put (new Integer (AccessibleRole.PASSWORD_TEXT), "PASSWORD_TEXT"); - maRoleMap.put (new Integer (AccessibleRole.POPUP_MENU), "POPUP_MENU"); - maRoleMap.put (new Integer (AccessibleRole.PUSH_BUTTON), "PUSH_BUTTON"); - maRoleMap.put (new Integer (AccessibleRole.PROGRESS_BAR), "PROGRESS_BAR"); - maRoleMap.put (new Integer (AccessibleRole.RADIO_BUTTON), "RADIO_BUTTON"); - maRoleMap.put (new Integer (AccessibleRole.RADIO_MENU_ITEM), "RADIO_MENU_ITEM"); - maRoleMap.put (new Integer (AccessibleRole.ROW_HEADER), "ROW_HEADER"); - maRoleMap.put (new Integer (AccessibleRole.ROOT_PANE), "ROOT_PANE"); - maRoleMap.put (new Integer (AccessibleRole.SCROLL_BAR), "SCROLL_BAR"); - maRoleMap.put (new Integer (AccessibleRole.SCROLL_PANE), "SCROLL_PANE"); - maRoleMap.put (new Integer (AccessibleRole.SHAPE), "SHAPE"); - maRoleMap.put (new Integer (AccessibleRole.SEPARATOR), "SEPARATOR"); - maRoleMap.put (new Integer (AccessibleRole.SLIDER), "SLIDER"); - maRoleMap.put (new Integer (AccessibleRole.SPIN_BOX), "SPIN_BOX"); - maRoleMap.put (new Integer (AccessibleRole.SPLIT_PANE), "SPLIT_PANE"); - maRoleMap.put (new Integer (AccessibleRole.STATUS_BAR), "STATUS_BAR"); - maRoleMap.put (new Integer (AccessibleRole.TABLE), "TABLE"); - maRoleMap.put (new Integer (AccessibleRole.TABLE_CELL), "TABLE_CELL"); - maRoleMap.put (new Integer (AccessibleRole.TEXT), "TEXT"); - maRoleMap.put (new Integer (AccessibleRole.TEXT_FRAME), "TEXT_FRAME"); - maRoleMap.put (new Integer (AccessibleRole.TOGGLE_BUTTON), "TOGGLE_BUTTON"); - maRoleMap.put (new Integer (AccessibleRole.TOOL_BAR), "TOOL_BAR"); - maRoleMap.put (new Integer (AccessibleRole.TOOL_TIP), "TOOL_TIP"); - maRoleMap.put (new Integer (AccessibleRole.TREE), "TREE"); - maRoleMap.put (new Integer (AccessibleRole.VIEW_PORT), "VIEW_PORT"); - maRoleMap.put (new Integer (AccessibleRole.WINDOW), "WINDOW"); - - maRelationMap.put (new Integer (AccessibleRelationType.INVALID), "INVALID"); - maRelationMap.put (new Integer (AccessibleRelationType.CONTENT_FLOWS_FROM), "CONTENT_FLOWS_FROM"); - maRelationMap.put (new Integer (AccessibleRelationType.CONTENT_FLOWS_TO), "CONTENT_FLOWS_TO"); - maRelationMap.put (new Integer (AccessibleRelationType.CONTROLLED_BY), "CONTROLLED_BY"); - maRelationMap.put (new Integer (AccessibleRelationType.CONTROLLER_FOR), "CONTROLLER_FOR"); - maRelationMap.put (new Integer (AccessibleRelationType.LABEL_FOR), "LABEL_FOR"); - maRelationMap.put (new Integer (AccessibleRelationType.LABELED_BY), "LABELED_BY"); - maRelationMap.put (new Integer (AccessibleRelationType.MEMBER_OF), "MEMBER_OF"); - maRelationMap.put (new Integer (AccessibleRelationType.SUB_WINDOW_OF), "SUB_WINDOW_OF"); - } -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java b/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java deleted file mode 100644 index 03e086f1d..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.PrintStream; -import java.util.Timer; -import java.util.TimerTask; -import java.util.Vector; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.bridge.XUnoUrlResolver; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.comp.helper.Bootstrap; - -/** This class establishes a connection to a StarOffice application. - */ -public class OfficeConnection - extends TimerTask -{ - final public static long snDelay = 3000; - - public static synchronized OfficeConnection Instance () - { - if (saInstance == null) - saInstance = new OfficeConnection (); - return saInstance; - } - - - - - static public void SetPipeName (String sPipeName) - { - ssDefaultPipeName = sPipeName; - } - - - - - public void AddConnectionListener (ActionListener aListener) - { - SimpleOffice aOffice = SimpleOffice.Instance(); - if (IsValid()) - aListener.actionPerformed ( - new ActionEvent (aOffice,0,"<connected>")); - maListeners.add (aListener); - } - - - - /** @descr Return the service manager that represents the connected - StarOffice application - */ - public XMultiServiceFactory GetServiceManager () - { - return maServiceManager; - } - - - - - /** Return a flag that indicates if the constructor has been able to - establish a valid connection. - */ - public boolean IsValid () - { - return (maServiceManager != null); - } - - - - - /** Connect to a already running StarOffice application that has - been started with a command line argument like - "-accept=pipe,name=<username>;urp;" - */ - private boolean Connect () - { - mbInitialized = true; - // Set up connection string. - String sConnectString = "uno:pipe,name=" + msPipeName - + ";urp;StarOffice.ServiceManager"; - - // connect to a running office and get the ServiceManager - try - { - // Create a URL Resolver. - XMultiServiceFactory aLocalServiceManager = - Bootstrap.createSimpleServiceManager(); - XUnoUrlResolver aURLResolver = - (XUnoUrlResolver) UnoRuntime.queryInterface ( - XUnoUrlResolver.class, - aLocalServiceManager.createInstance ( - "com.sun.star.bridge.UnoUrlResolver") - ); - - maServiceManager = - (XMultiServiceFactory) UnoRuntime.queryInterface ( - XMultiServiceFactory.class, - aURLResolver.resolve (sConnectString) - ); - } - - catch (Exception e) - { - if (maOut != null) - { - maOut.println ("Could not connect with " - + sConnectString + " : " + e); - maOut.println ("Please start OpenOffice/StarOffice with " - + "\"-accept=pipe,name=" + msPipeName + ";urp;\""); - } - } - - return maServiceManager != null; - } - - - public void run () - { - if ( ! IsValid()) - { - MessageArea.println ("trying to connect"); - if (Connect()) - { - // Stop the timer. - cancel (); - - ActionEvent aEvent = new ActionEvent (this,0,"<connected>"); - for (int i=0; i<maListeners.size(); i++) - ((ActionListener)maListeners.elementAt(i)).actionPerformed(aEvent); - } - } - } - - private OfficeConnection () - { - this (null); - } - - - private OfficeConnection (PrintStream aOut) - { - msPipeName = ssDefaultPipeName; - maOut = aOut; - maListeners = new Vector(); - maServiceManager = null; - - maTimer = new Timer (true); - maTimer.schedule (this, 0, snDelay); - } - - - private static OfficeConnection saInstance = null; - private static String ssDefaultPipeName = System.getenv( "USER" ); - - private XMultiServiceFactory maServiceManager; - String msPipeName; - - /** A value of true just indicates that it has been tried to establish a connection, - not that that has been successfull. - */ - private boolean mbInitialized = false; - - /// Stream used to print messages. - private PrintStream maOut; - private Timer maTimer; - private Vector maListeners; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Options.java b/accessibility/workben/org/openoffice/accessibility/misc/Options.java deleted file mode 100644 index a40031156..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/Options.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.io.File; -import java.io.FileReader; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.Properties; - - -/** Load from and save options into a file. -*/ -public class Options - extends Properties -{ - static public Options Instance () - { - if (saOptions == null) - saOptions = new Options (); - return saOptions; - } - - static public void SetString (String sName, String sValue) - { - Instance().setProperty (sName, sValue); - Instance().Save (); - } - - static public String GetString (String sName) - { - return Instance().getProperty (sName); - } - - static public void SetBoolean (String sName, boolean bValue) - { - Instance().setProperty (sName, Boolean.toString(bValue)); - Instance().Save (); - } - - static public boolean GetBoolean (String sName) - { - return Boolean.valueOf(Instance().getProperty (sName)).booleanValue(); - } - - static public void SetInteger (String sName, int nValue) - { - Instance().setProperty (sName, Integer.toString(nValue)); - Instance().Save (); - } - - static public int GetInteger (String sName, int nDefault) - { - String sValue = Instance().getProperty (sName); - if (sValue == null) - return nDefault; - else - return Integer.parseInt (sValue); - } - - public void Load (String sBaseName) - { - try - { - load (new FileInputStream (ProvideFile(sBaseName))); - } - catch (java.io.IOException e) - { - // Ignore a non-existing options file. - } - } - - public void Save (String sBaseName) - { - ProvideFile(sBaseName); - Save (); - } - - public void Save () - { - if (maFile != null) - { - try - { - store (new FileOutputStream (maFile), null); - } - catch (java.io.IOException e) - { - } - } - } - - private Options () - { - maFile = null; - } - - private File ProvideFile (String sBaseName) - { - maFile = new File ( - System.getProperty ("user.home"), - sBaseName); - return maFile; - } - - static private Options saOptions = null; - private File maFile; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java b/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java deleted file mode 100644 index 343ccfc40..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java +++ /dev/null @@ -1,413 +0,0 @@ -package org.openoffice.accessibility.misc; - -import java.lang.Thread; - -import com.sun.star.awt.Rectangle; -import com.sun.star.awt.XExtendedToolkit; -import com.sun.star.awt.XWindow; - -import com.sun.star.beans.PropertyValue; -import com.sun.star.beans.XPropertySet; - -import com.sun.star.container.XIndexAccess; -import com.sun.star.container.XChild; -import com.sun.star.container.XEnumerationAccess; -import com.sun.star.container.XEnumeration; - -import com.sun.star.frame.XComponentLoader; -import com.sun.star.frame.XController; -import com.sun.star.frame.XDesktop; -import com.sun.star.frame.XFrame; -import com.sun.star.frame.XModel; -import com.sun.star.frame.XTasksSupplier; -import com.sun.star.frame.XTask; - -import com.sun.star.lang.XComponent; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XServiceInfo; -import com.sun.star.lang.XServiceName; -import com.sun.star.lang.XTypeProvider; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XInterface; -import com.sun.star.uno.Type; - -import com.sun.star.drawing.XDrawView; -import com.sun.star.drawing.XDrawPage; -import com.sun.star.drawing.XShapes; -import com.sun.star.drawing.XShape; -import com.sun.star.drawing.XShapeDescriptor; - -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleRelationSet; -import com.sun.star.accessibility.XAccessibleStateSet; - - -/** This singleton class tries to simplify some tasks like loading a document - or getting various objects. -*/ -public class SimpleOffice -{ - synchronized static public SimpleOffice Instance () - { - if (saInstance == null) - saInstance = new SimpleOffice (); - - return saInstance; - } - - synchronized static public void Clear () - { - saInstance = null; - } - - - public XModel LoadDocument (String URL) - { - XModel xModel = null; - try - { - // Load the document from the specified URL. - XComponentLoader xLoader = - (XComponentLoader)UnoRuntime.queryInterface( - XComponentLoader.class, mxDesktop); - - XComponent xComponent = xLoader.loadComponentFromURL ( - URL, - "_blank", - 0, - new PropertyValue[0] - ); - - xModel = (XModel) UnoRuntime.queryInterface( - XModel.class, xComponent); - } - catch (java.lang.NullPointerException e) - { - MessageArea.println ("caught exception while loading " - + URL + " : " + e); - } - catch (Exception e) - { - MessageArea.println ("caught exception while loading " - + URL + " : " + e); - } - return xModel; - } - - - - - public XModel GetModel (String name) - { - XModel xModel = null; - try - { - XTasksSupplier xTasksSupplier = - (XTasksSupplier) UnoRuntime.queryInterface( - XTasksSupplier.class, mxDesktop); - XEnumerationAccess xEA = xTasksSupplier.getTasks(); - XEnumeration xE = xEA.createEnumeration(); - while (xE.hasMoreElements()) - { - XTask xTask = (XTask) UnoRuntime.queryInterface( - XTask.class, xE.nextElement()); - MessageArea.print (xTask.getName()); - } - } - catch (Exception e) - { - MessageArea.println ("caught exception while getting Model " + name - + ": " + e); - } - return xModel; - } - - - public XModel GetModel (XDrawView xView) - { - XController xController = (XController) UnoRuntime.queryInterface( - XController.class, xView); - if (xController != null) - return xController.getModel(); - else - { - MessageArea.println ("can't cast view to controller"); - return null; - } - } - - - - - public XDesktop GetDesktop () - { - if (mxDesktop != null) - return mxDesktop; - try - { - // Get the factory of the connected office. - XMultiServiceFactory xMSF = - OfficeConnection.Instance().GetServiceManager (); - if (xMSF == null) - { - MessageArea.println ("can't connect to office"); - return null; - } - else - MessageArea.println ("Connected successfully."); - - // Create a new desktop. - mxDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, - xMSF.createInstance ("com.sun.star.frame.Desktop") - ); - } - catch (Exception e) - { - MessageArea.println ("caught exception while creating desktop: " - + e); - } - - return mxDesktop; - } - - - /** Return a reference to the extended toolkit which is a broadcaster of - top window, key, and focus events. - */ - public XExtendedToolkit GetExtendedToolkit () - { - XExtendedToolkit xToolkit = null; - if (this != null) - try - { - // Get the factory of the connected office. - XMultiServiceFactory xMSF = - OfficeConnection.Instance().GetServiceManager (); - if (xMSF != null) - { - xToolkit = (XExtendedToolkit) UnoRuntime.queryInterface( - XExtendedToolkit.class, - xMSF.createInstance ("stardiv.Toolkit.VCLXToolkit") - ); - } - } - catch (Exception e) - { - MessageArea.println ( - "caught exception while creating extended toolkit: " + e); - } - - return xToolkit; - } - - - - static public XAccessible GetAccessibleObject (XInterface xObject) - { - XAccessible xAccessible = null; - try - { - xAccessible = (XAccessible) UnoRuntime.queryInterface( - XAccessible.class, xObject); - } - catch (Exception e) - { - System.err.println ( - "caught exception while getting accessible object" + e); - e.printStackTrace (System.err); - } - return xAccessible; - } - - static public XAccessibleContext GetAccessibleContext (XInterface xObject) - { - XAccessible xAccessible = GetAccessibleObject (xObject); - if (xAccessible != null) - return xAccessible.getAccessibleContext(); - else - return null; - } - - /** Return the root object of the accessibility hierarchy. - */ - public XAccessible GetAccessibleRoot (XAccessible xAccessible) - { - try - { - XAccessible xParent = null; - do - { - XAccessibleContext xContext = xAccessible.getAccessibleContext(); - if (xContext != null) - xParent = xContext.getAccessibleParent(); - if (xParent != null) - xAccessible = xParent; - } - while (xParent != null); - } - catch (Exception e) - { - MessageArea.println ( - "caught exception while getting accessible root" + e); - e.printStackTrace(); - } - return xAccessible; - } - - - - - /** @descr Return the current window associated with the given - model. - */ - public XWindow GetCurrentWindow () - { - return GetCurrentWindow ((XModel) UnoRuntime.queryInterface( - XModel.class, GetDesktop())); - } - - - - - - public XWindow GetCurrentWindow (XModel xModel) - { - XWindow xWindow = null; - try - { - if (xModel == null) - MessageArea.println ("invalid model (==null)"); - XController xController = xModel.getCurrentController(); - if (xController == null) - MessageArea.println ("can't get controller from model"); - XFrame xFrame = xController.getFrame(); - if (xFrame == null) - MessageArea.println ("can't get frame from controller"); - xWindow = xFrame.getComponentWindow (); - if (xWindow == null) - MessageArea.println ("can't get window from frame"); - } - catch (Exception e) - { - MessageArea.println ("caught exception while getting current window" + e); - } - - return xWindow; - } - - - /** @descr Return the current draw page of the given desktop. - */ - public XDrawPage GetCurrentDrawPage () - { - return GetCurrentDrawPage ( - (XDrawView) UnoRuntime.queryInterface( - XDrawView.class, - GetCurrentView())); - } - - - - - public XDrawPage GetCurrentDrawPage (XDrawView xView) - { - XDrawPage xPage = null; - try - { - if (xView == null) - MessageArea.println ("can't get current draw page from null view"); - else - xPage = xView.getCurrentPage(); - } - catch (Exception e) - { - MessageArea.println ("caught exception while getting current draw page : " + e); - } - - return xPage; - } - - - - - /** @descr Return the current view of the given desktop. - */ - public XDrawView GetCurrentView () - { - return GetCurrentView (GetDesktop()); - } - - public XDrawView GetCurrentView (XDesktop xDesktop) - { - if (xDesktop == null) - MessageArea.println ("can't get desktop to retrieve current view"); - - XDrawView xView = null; - try - { - XComponent xComponent = xDesktop.getCurrentComponent(); - if (xComponent == null) - MessageArea.println ("can't get component to retrieve current view"); - - XFrame xFrame = xDesktop.getCurrentFrame(); - if (xFrame == null) - MessageArea.println ("can't get frame to retrieve current view"); - - XController xController = xFrame.getController(); - if (xController == null) - MessageArea.println ("can't get controller to retrieve current view"); - - xView = (XDrawView) UnoRuntime.queryInterface( - XDrawView.class, xController); - if (xView == null) - MessageArea.println ("could not cast controller into view"); - } - catch (Exception e) - { - MessageArea.println ("caught exception while getting current view : " + e); - } - - return xView; - } - - - - - // Return the accessible object of the document window. - public static XAccessible GetAccessibleDocumentWindow (XDrawPage xPage) - { - XIndexAccess xShapeList = (XIndexAccess) UnoRuntime.queryInterface( - XIndexAccess.class, xPage); - if (xShapeList.getCount() > 0) - { - // All shapes return as accessible object the document window's - // accessible object. This is, of course, a hack and will be - // removed as soon as the missing infrastructure for obtaining - // the object directly is implemented. - XShape xShape = null; - try{ - xShape = (XShape) UnoRuntime.queryInterface( - XShape.class, xShapeList.getByIndex (0)); - } catch (Exception e) - {} - XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface ( - XAccessible.class, xShape); - return xAccessible; - } - else - return null; - } - - private SimpleOffice () - { - } - - - - private XDesktop mxDesktop; - private static SimpleOffice saInstance = null; -} diff --git a/accessibility/workben/org/openoffice/accessibility/misc/makefile.common b/accessibility/workben/org/openoffice/accessibility/misc/makefile.common deleted file mode 100644 index 0d7b0a3f5..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/makefile.common +++ /dev/null @@ -1,36 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -JARFILES = jurt.jar unoil.jar ridl.jar juh.jar java_uno.jar -JAVAFILES = \ - AccessibleEventMulticaster.java \ - InformationWriter.java \ - MessageArea.java \ - NameProvider.java \ - OfficeConnection.java \ - Options.java \ - SimpleOffice.java diff --git a/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk b/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk deleted file mode 100644 index fe56ef406..000000000 --- a/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJNAME = awb -PRJ = ..$/..$/..$/..$/.. -TARGET = java_misc -PACKAGE = org$/openoffice$/accessibility$/misc - -USE_JAVAVER:=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(JAVAVER:s/.//)" >= "140" -.INCLUDE : makefile.common -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) -.ENDIF - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk |