summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2014-12-18 09:50:23 +0200
committerNoel Grandin <noel@peralex.com>2015-01-05 08:23:30 +0200
commit35f8d6afcc60efe1188a567f655d483ddf977fc2 (patch)
tree11e58be08d4717a175249a748428386878d3443c /toolkit
parent43cc8ad33e815522e2b23ac87a4a9c4526cd85c9 (diff)
java: remove unnecessary reflection in toolkit tests
and delete a dead class Change-Id: I7822ecff670d6036d0cf35f4b2d299b738f9061b
Diffstat (limited to 'toolkit')
-rw-r--r--toolkit/test/accessibility/ov/ObjectView.java12
-rw-r--r--toolkit/test/accessibility/ov/ObjectViewContainer.java77
-rw-r--r--toolkit/test/accessibility/ov/StateSetView.java263
3 files changed, 29 insertions, 323 deletions
diff --git a/toolkit/test/accessibility/ov/ObjectView.java b/toolkit/test/accessibility/ov/ObjectView.java
index 9004fe642527..694a331abbec 100644
--- a/toolkit/test/accessibility/ov/ObjectView.java
+++ b/toolkit/test/accessibility/ov/ObjectView.java
@@ -37,18 +37,6 @@ import com.sun.star.accessibility.XAccessibleContext;
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;
diff --git a/toolkit/test/accessibility/ov/ObjectViewContainer.java b/toolkit/test/accessibility/ov/ObjectViewContainer.java
index 7d9e5cb9b1f6..2a5942770636 100644
--- a/toolkit/test/accessibility/ov/ObjectViewContainer.java
+++ b/toolkit/test/accessibility/ov/ObjectViewContainer.java
@@ -22,8 +22,6 @@ import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import javax.swing.BorderFactory;
@@ -37,20 +35,38 @@ import com.sun.star.accessibility.XAccessibleContext;
public class ObjectViewContainer
extends JPanel
{
+ private static interface IViewFactory {
+ ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext);
+ }
+
public ObjectViewContainer ()
{
- maViewTemplates = new ArrayList<Class> ();
+ maViewTemplates = new ArrayList<IViewFactory>();
maViewBorder = BorderFactory.createBevelBorder (BevelBorder.RAISED);
setLayout (new GridBagLayout ());
- System.out.println ("ObjectViewContainer");
- RegisterView (ContextView.class);
- RegisterView (FocusView.class);
- RegisterView (TextView.class);
+ maViewTemplates.add(new IViewFactory() {
+ public ObjectView Create(ObjectViewContainer aContainer,
+ XAccessibleContext xContext) {
+ return ContextView.Create(aContainer, xContext);
+ }
+ });
+ maViewTemplates.add(new IViewFactory() {
+ public ObjectView Create(ObjectViewContainer aContainer,
+ XAccessibleContext xContext) {
+ return FocusView.Create(aContainer, xContext);
+ }
+ });
+ maViewTemplates.add(new IViewFactory() {
+ public ObjectView Create(ObjectViewContainer aContainer,
+ XAccessibleContext xContext) {
+ return TextView.Create(aContainer, xContext);
+ }
+ });
}
-
-
/** Remove all existing views and create new ones according to the
interfaces supported by the given object.
*/
@@ -67,26 +83,9 @@ public class ObjectViewContainer
// Add new views.
for (int i=0; i<maViewTemplates.size(); i++)
{
- try
- {
- Class<?> aViewClass = maViewTemplates.get(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);}
+ IViewFactory aViewFactory = maViewTemplates.get(i);
+ ObjectView aView = aViewFactory.Create(this, xContext);
+ Add (aView);
}
UpdateLayoutManager ();
@@ -100,24 +99,6 @@ public class ObjectViewContainer
}
- /** Add the given class to the list of classes which will be
- instantiated the next time an accessible object is set.
- */
- private void RegisterView (Class aObjectViewClass)
- {
- System.out.println ("registering " + aObjectViewClass);
- maViewTemplates.add(aObjectViewClass);
- }
-
- /** Replace one view class with another.
- */
- public void ReplaceView (Class aObjectViewClass, Class aSubstitution)
- {
- int nIndex = maViewTemplates.indexOf (aObjectViewClass);
- if (nIndex >= 0)
- maViewTemplates.set (nIndex, aSubstitution);
- }
-
/** Add an object view and place it below all previously added views.
@param aView
This argument may be null. In this case nothing happens.
@@ -167,5 +148,5 @@ public class ObjectViewContainer
private final Border maViewBorder;
/// List of view templates which are instantiated when new object is set.
- private final ArrayList<Class> maViewTemplates;
+ private final ArrayList<IViewFactory> maViewTemplates;
}
diff --git a/toolkit/test/accessibility/ov/StateSetView.java b/toolkit/test/accessibility/ov/StateSetView.java
deleted file mode 100644
index f3e4ddfd9307..000000000000
--- a/toolkit/test/accessibility/ov/StateSetView.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package ov;
-
-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.event.MouseListener;
-import java.awt.event.MouseEvent;
-
-import java.awt.geom.AffineTransform;
-
-
-import javax.swing.JLabel;
-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 tools.NameProvider;
-
-public class StateSetView
- extends ListeningObjectView
- implements MouseListener
-{
- /** 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)
- if (mnViewMode == SHOW_ALL_STATES)
- aView = StateSetAllView.Create (aContainer, xContext);
- else
- aView = StateSetSetView.Create (aContainer, xContext);
- return aView;
- }
-
- private StateSetView (ObjectViewContainer aContainer)
- {
- super (aContainer);
-
- addMouseListener (this);
- }
-
- private void SetViewMode (int nViewMode)
- {
- mnViewMode = nViewMode;
- switch (mnViewMode)
- {
- case SHOW_SET_STATES :
- maContainer.ReplaceView (
- getClass(),
- StateSetSetView.class);
- break;
- case SHOW_ALL_STATES :
- maContainer.ReplaceView (
- getClass(),
- StateSetAllView.class);
- break;
- }
- maContainer.SetObject (mxContext);
- }
-
-
-
- @Override
- public String GetTitle ()
- {
- return ("StateSet");
- }
-
- @Override
- public void notifyEvent (AccessibleEventObject aEvent)
- {
- if (aEvent.EventId == AccessibleEventId.STATE_CHANGED)
- Update();
- }
-
- public void mouseClicked(MouseEvent e)
- {
- switch (mnViewMode)
- {
- case SHOW_SET_STATES :
- SetViewMode (SHOW_ALL_STATES);
- break;
- case SHOW_ALL_STATES :
- SetViewMode (SHOW_SET_STATES);
- break;
- }
- }
- public void mouseEntered (MouseEvent e) {}
- public void mouseExited (MouseEvent e) {}
- public void mousePressed (MouseEvent e) {}
- public void mouseReleased(MouseEvent e) {}
-
- private final static int SHOW_SET_STATES = 0;
- private final static int SHOW_ALL_STATES = 1;
- private static int mnViewMode = SHOW_ALL_STATES;
-
-
-
-private static class StateSetAllView
- extends StateSetView
-{
- /** Create a FocusView when the given object supports the
- XAccessibleComponent interface.
- */
- static public ObjectView Create (
- ObjectViewContainer aContainer,
- XAccessibleContext xContext)
- {
- if (xContext != null)
- return new StateSetAllView (aContainer);
- else
- return null;
- }
-
- private StateSetAllView (ObjectViewContainer aContainer)
- {
- super (aContainer);
-
- setPreferredSize (new Dimension(300,90));
- setMinimumSize (new Dimension(200,80));
- }
-
- @Override
- public void paintChildren (Graphics g)
- {
- 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.getAccessibleStateSet();
- if (xStateSet != null)
- {
- final int nMaxStateIndex = AccessibleStateType.MANAGES_DESCENDANTS;
- int nStateWidth = (aWidgetArea.width-12) / (nMaxStateIndex+1);
- AffineTransform aTransform = g.getTransform ();
- g.setColor (aTextColor);
- int y = aWidgetArea.y+aWidgetArea.height - 12;
- double nTextRotation = -0.9;//-Math.PI/2;
- double nScale = 0.6;
-
- // Create a shape for the boxes.
- int nBoxWidth = nStateWidth-2;
- if (nBoxWidth > 8)
- nBoxWidth = 8;
- Rectangle aCheckBox = new Rectangle (-nBoxWidth/2,0,nBoxWidth,nBoxWidth);
-
- for (short i=0; i<=nMaxStateIndex; i++)
- {
- int x = nStateWidth + i * nStateWidth;
- String sStateName = NameProvider.getStateName (i);
- boolean bStateSet = xStateSet.contains (i);
- g.setTransform (aTransform);
- g.translate (x,y);
- if (bStateSet)
- {
- g.setColor (Color.GREEN);
- 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);
- }
- }
- }
-}
-
-
-private static class StateSetSetView
- extends StateSetView
-{
- static public ObjectView Create (
- ObjectViewContainer aContainer,
- XAccessibleContext xContext)
- {
- if (xContext != null)
- return new StateSetSetView (aContainer);
- else
- return null;
- }
-
- private StateSetSetView (ObjectViewContainer aContainer)
- {
- super (aContainer);
-
- maStates = null;
- setPreferredSize (new Dimension(300,90));
- }
-
-
- @Override
- synchronized public void Update ()
- {
- XAccessibleStateSet xStateSet = mxContext.getAccessibleStateSet();
- if (xStateSet != null)
- {
- String sStates = "";
- short aStates[] = xStateSet.getStates();
- for (int i=0; i<aStates.length; i++)
- {
- if (i > 0)
- sStates = sStates + ", ";
- sStates = sStates + NameProvider.getStateName(aStates[i]);
- }
- maStates.setText (sStates);
- }
- }
-
- private final JLabel maStates;
-}
-
-}