diff options
author | Markus Tiede | 2015-02-05 09:36:49 +0000 |
---|---|---|
committer | Markus Tiede | 2015-02-05 09:36:57 +0000 |
commit | 322ba43731e7c19d12443bb3c2b00700377860e0 (patch) | |
tree | 1e8214027b88bd9a8ee12ef7c38fb36f411c8467 /org.eclipse.jubula.rc.swing/src | |
parent | 5dc23acd8ac8929bb2154104072b9e2c87c2d07f (diff) | |
download | org.eclipse.jubula.core-322ba43731e7c19d12443bb3c2b00700377860e0.tar.gz org.eclipse.jubula.core-322ba43731e7c19d12443bb3c2b00700377860e0.tar.xz org.eclipse.jubula.core-322ba43731e7c19d12443bb3c2b00700377860e0.zip |
Non-sprint task - major refactoring: added generic type information to AUTHierarchy, components and container classes.
Diffstat (limited to 'org.eclipse.jubula.rc.swing/src')
4 files changed, 104 insertions, 162 deletions
diff --git a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/AUTSwingHierarchy.java b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/AUTSwingHierarchy.java index 2e835c8b2..94f7f997d 100644 --- a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/AUTSwingHierarchy.java +++ b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/AUTSwingHierarchy.java @@ -40,6 +40,7 @@ import org.apache.commons.lang.Validate; import org.eclipse.jubula.rc.common.AUTServer; import org.eclipse.jubula.rc.common.AUTServerConfiguration; import org.eclipse.jubula.rc.common.Constants; +import org.eclipse.jubula.rc.common.components.AUTComponent; import org.eclipse.jubula.rc.common.components.AUTHierarchy; import org.eclipse.jubula.rc.common.components.HierarchyContainer; import org.eclipse.jubula.rc.common.exception.ComponentNotManagedException; @@ -59,7 +60,7 @@ import org.eclipse.jubula.tools.internal.utils.EnvironmentUtils; /**
* This class holds a hierarchy of the components of the AUT. <br>
*
- * The hierarchy is composed with <code>SwingHierarchyContainer</code>s. For every
+ * The hierarchy is composed with <code>HierarchyContainer</code>s. For every
* component from the AUT a hierarchy container is created. The names for the
* components are stored in the appropriate hierarchy containers, instead of the
* components itself. Thus the AUTServer does not affect the instances from the
@@ -81,7 +82,7 @@ import org.eclipse.jubula.tools.internal.utils.EnvironmentUtils; * @created 30.08.2004
*
*/
-public class AUTSwingHierarchy extends AUTHierarchy
+public class AUTSwingHierarchy extends AUTHierarchy<Component>
implements ContainerListener, ComponentListener {
/** @@ -151,8 +152,8 @@ public class AUTSwingHierarchy extends AUTHierarchy }
// create a new SwingHierarchyContainer for window
- SwingComponent componentID = new SwingComponent(window);
- SwingHierarchyContainer hierarchyWindow =
+ AUTComponent<Component> componentID = new SwingComponent(window);
+ HierarchyContainer<Component> hierarchyWindow =
new SwingHierarchyContainer(componentID);
// update the hash table
addToHierachyMap(hierarchyWindow);
@@ -161,7 +162,7 @@ public class AUTSwingHierarchy extends AUTHierarchy // get the parent of window, if any
Container parent = window.getParent();
if (parent != null) {
- SwingHierarchyContainer hierarchyParent =
+ HierarchyContainer<Component> hierarchyParent =
getHierarchyContainer(parent);
if (hierarchyParent == null) {
// a new container, see comment at top of the method
@@ -171,7 +172,7 @@ public class AUTSwingHierarchy extends AUTHierarchy name(hierarchyParent);
// add the new container for the window to hierarchyParent
hierarchyParent.add(hierarchyWindow);
- hierarchyWindow.setParent(hierarchyParent);
+ hierarchyWindow.setPrnt(hierarchyParent);
name(hierarchyWindow);
// update m_hierarchyMap
addToHierachyMap(hierarchyParent);
@@ -191,12 +192,12 @@ public class AUTSwingHierarchy extends AUTHierarchy // remove the container from hierarchyMap
// deregistering the listener from the window happens in window listener itself
if (getRealMap().get(window) != null) {
- SwingHierarchyContainer windowContainer = (SwingHierarchyContainer)
- getHierarchyMap().get(getRealMap().get(window));
+ HierarchyContainer<Component> windowContainer = getHierarchyMap() + .get(getRealMap().get(window));
if (windowContainer != null) {
// remove the windowContainer from its parent in the hierarchy, if any
- SwingHierarchyContainer parentContainer =
- windowContainer.getParent();
+ HierarchyContainer<Component> parentContainer =
+ windowContainer.getPrnt();
if (parentContainer != null) {
parentContainer.remove(windowContainer);
}
@@ -234,7 +235,8 @@ public class AUTSwingHierarchy extends AUTHierarchy List<String> hierarchy = getPathToRoot(component);
result.setHierarchyNames(hierarchy);
result.setNeighbours(getComponentContext(component));
- HierarchyContainer container = getHierarchyContainer(component);
+ HierarchyContainer<Component> container = + getHierarchyContainer(component);
setAlternativeDisplayName(container, component, result); if (component.equals(findBP.findComponent(result, ComponentHandler.getAutHierarchy()))) { @@ -254,17 +256,16 @@ public class AUTSwingHierarchy extends AUTHierarchy /**
* {@inheritDoc}
*/
- protected List<String> getComponentContext(Object component) {
- Component comp = (Component)component;
+ protected List<String> getComponentContext(Component comp) {
List<String> context = new ArrayList<String>();
if (comp.getParent() != null) {
- SwingHierarchyContainer parent = getHierarchyContainer(
+ HierarchyContainer<Component> parent = getHierarchyContainer(
comp.getParent());
if (parent != null) {
- SwingHierarchyContainer[] comps = parent.getComponents();
+ HierarchyContainer<Component>[] comps = parent.getComps();
for (int i = 0; i < comps.length; i++) {
- Component child = comps[i].getComponentID()
- .getRealComponent();
+ Component child = comps[i].getCompID()
+ .getComponent();
if (!child.equals(comp)) {
String toAdd = child.getClass().getName()
+ Constants.CLASS_NUMBER_SEPERATOR + 1;
@@ -291,10 +292,12 @@ public class AUTSwingHierarchy extends AUTHierarchy public IComponentIdentifier[] getAllComponentId() {
checkDispatchThread();
List<IComponentIdentifier> result = new Vector<IComponentIdentifier>();
- Set<?> keys = getHierarchyMap().keySet();
- for (Iterator<?> iter = keys.iterator(); iter.hasNext();) {
- Component component = ((SwingComponent)iter.next())
- .getRealComponent();
+ Set<? extends AUTComponent<Component>> keys = + getHierarchyMap().keySet();
+ for (Iterator<? extends AUTComponent<Component>> + iter = keys.iterator(); iter.hasNext();) { +
+ Component component = iter.next().getComponent();
try {
if (AUTServerConfiguration.getInstance().isSupported(
component)) {
@@ -359,8 +362,9 @@ public class AUTSwingHierarchy extends AUTHierarchy }
Validate.notNull(component, "The component must not be null"); //$NON-NLS-1$
List<String> hierarchy = new ArrayList<String>();
- SwingHierarchyContainer parent;
- SwingHierarchyContainer autContainer = getHierarchyContainer(component);
+ HierarchyContainer<Component> parent;
+ HierarchyContainer<Component> autContainer = + getHierarchyContainer(component);
if (autContainer != null) {
// add the name of the container itself
hierarchy.add(autContainer.getName());
@@ -373,17 +377,18 @@ public class AUTSwingHierarchy extends AUTHierarchy return hierarchy;
}
parent = getHierarchyContainer(component.getParent());
- autContainer.setParent(parent);
+ autContainer.setPrnt(parent);
// prepend the name of the container up to the root container
while (parent != null) {
((ArrayList<String>)hierarchy).add(0, parent.getName());
- Component compo = parent.getComponentID().getRealComponent();
- parent = parent.getParent();
+ Component compo = parent.getCompID().getComponent();
+ parent = parent.getPrnt();
if (parent == null && compo != null
&& compo.getParent() != null) {
- SwingComponent comp = new SwingComponent(compo.getParent());
- SwingHierarchyContainer container =
+ AUTComponent<Component> comp = + new SwingComponent(compo.getParent());
+ HierarchyContainer<Component> container =
new SwingHierarchyContainer(comp);
name(container);
parent = container;
@@ -429,7 +434,7 @@ public class AUTSwingHierarchy extends AUTHierarchy + "' added to '" + container + "'"); //$NON-NLS-1$ //$NON-NLS-2$
}
// get the hierarchy container for container, must be there!
- SwingHierarchyContainer hierarchyContainer = null;
+ HierarchyContainer<Component> hierarchyContainer = null;
if (toAdd instanceof Window) {
hierarchyContainer = getHierarchyContainer(toAdd);
} else {
@@ -448,10 +453,10 @@ public class AUTSwingHierarchy extends AUTHierarchy }
// create new hierarchy container for child, name, update hashtable, put
// them together,
- SwingHierarchyContainer hierarchyChild =
+ HierarchyContainer<Component> hierarchyChild =
new SwingHierarchyContainer(new SwingComponent(toAdd));
hierarchyContainer.add(hierarchyChild);
- hierarchyChild.setParent(hierarchyContainer);
+ hierarchyChild.setPrnt(hierarchyContainer);
name(hierarchyChild);
addToHierachyMap(hierarchyChild);
if (toAdd instanceof Container) {
@@ -492,12 +497,12 @@ public class AUTSwingHierarchy extends AUTHierarchy if (toRemove instanceof Container) {
deregisterAsContainerListener((Container)toRemove);
}
- SwingHierarchyContainer hierarchyChild = getHierarchyContainer(
- toRemove);
+ HierarchyContainer<Component> hierarchyChild = + getHierarchyContainer(toRemove);
// update the hierarchy
if (hierarchyChild != null) {
- SwingHierarchyContainer hierarchyParent = hierarchyChild
- .getParent();
+ HierarchyContainer<Component> hierarchyParent = hierarchyChild
+ .getPrnt();
if (hierarchyParent != null) {
hierarchyParent.remove(hierarchyChild);
} else {
@@ -604,14 +609,19 @@ public class AUTSwingHierarchy extends AUTHierarchy registerListener(registrationRunnable); }
- /**
- * Adds the parent(s) of the given container to the hierarchy recursively. <br>
- * Recursion stops if the top level container is reached or a parent container is already known.
- * @param hierarchyContainer the responding SwingHierarchyContainer of container
- * @param container the container from the AUT
- */
- private void addToHierarchyUp(
- SwingHierarchyContainer hierarchyContainer, Container container) {
+ /** + * Adds the parent(s) of the given container to the hierarchy recursively. <br> + * Recursion stops if the top level container is reached or a parent + * container is already known. + * + * @param hierarchyContainer + * the responding SwingHierarchyContainer of container + * @param container + * the container from the AUT + */ + private void addToHierarchyUp( + HierarchyContainer<Component> hierarchyContainer, + Container container) {
checkDispatchThread();
if (log.isInfoEnabled()) {
@@ -621,7 +631,7 @@ public class AUTSwingHierarchy extends AUTHierarchy registerAsContainerListener(container);
Container parent = container.getParent();
if (parent != null) { // root not reached
- SwingHierarchyContainer hierarchyParent =
+ HierarchyContainer<Component> hierarchyParent =
getHierarchyContainer(container);
if (hierarchyParent == null) {
// unknown SwingHierarchyContainer for parent:
@@ -633,7 +643,7 @@ public class AUTSwingHierarchy extends AUTHierarchy hierarchyParent = new SwingHierarchyContainer(
new SwingComponent(parent));
hierarchyParent.add(hierarchyContainer);
- hierarchyContainer.setParent(hierarchyParent);
+ hierarchyContainer.setPrnt(hierarchyParent);
name(hierarchyParent);
addToHierachyMap(hierarchyParent);
addToHierarchyUp(hierarchyParent, parent);
@@ -646,8 +656,9 @@ public class AUTSwingHierarchy extends AUTHierarchy * @param hierarchyContainer the responding container (meta data)
* @param container the container from the AUT, which children are to be added
*/
- private void addToHierarchyDown(
- SwingHierarchyContainer hierarchyContainer, Container container) {
+ private void addToHierarchyDown( + HierarchyContainer<Component> hierarchyContainer, + Container container) {
checkDispatchThread();
if (log.isInfoEnabled()) {
@@ -667,11 +678,11 @@ public class AUTSwingHierarchy extends AUTHierarchy add((Window)component);
} else {
// add the container
- SwingHierarchyContainer newHierarchyContainer =
+ HierarchyContainer<Component> newHierarchyContainer =
new SwingHierarchyContainer(new SwingComponent(component));
name(newHierarchyContainer);
// update the hash table
- newHierarchyContainer.setParent(hierarchyContainer);
+ newHierarchyContainer.setPrnt(hierarchyContainer);
hierarchyContainer.add(newHierarchyContainer);
addToHierachyMap(newHierarchyContainer);
if (component instanceof Container) {
@@ -689,12 +700,12 @@ public class AUTSwingHierarchy extends AUTHierarchy * <p> deregisters this from the container from AUT. <br> updates also the internal hierarchy map.
* @param container the container to start
*/
- private void removeFromHierarchy(SwingHierarchyContainer container) {
+ private void removeFromHierarchy(HierarchyContainer<Component> container) {
if (container == null) {
return;
}
- SwingComponent autCompID = container.getComponentID();
- Component autComp = autCompID.getRealComponent();
+ AUTComponent<Component> autCompID = container.getCompID();
+ Component autComp = autCompID.getComponent();
if (autComp == null) {
log.error("invalid component for removal:" //$NON-NLS-1$
@@ -716,16 +727,19 @@ public class AUTSwingHierarchy extends AUTHierarchy * @throws IllegalArgumentException if component is null
* @return the hierarchy container or null if the component is not yet managed
*/
- public SwingHierarchyContainer getHierarchyContainer(Component component)
+ public HierarchyContainer<Component> getHierarchyContainer( + Component component)
throws IllegalArgumentException {
Validate.notNull(component, "The component must not be null"); //$NON-NLS-1$
- SwingHierarchyContainer result = null;
- try {
- SwingComponent compID = (SwingComponent)getRealMap().get(component);
- if (compID != null) {
- result = (SwingHierarchyContainer)getHierarchyMap().get(compID);
- }
+ HierarchyContainer<Component> result = null;
+ try { + AUTComponent<Component> compID = (AUTComponent<Component>) + getRealMap().get(component); + if (compID != null) { + result = (HierarchyContainer<Component>) + getHierarchyMap().get(compID); + } } catch (ClassCastException cce) {
log.error(cce);
} catch (NullPointerException npe) {
@@ -737,15 +751,15 @@ public class AUTSwingHierarchy extends AUTHierarchy /**
* Names the given hierarchy container. <br>
* If the managed component has a unique name, this name is used. Otherwise
- * a name (unique for the hierachy level) is created.
+ * a name (unique for the hierarchy level) is created.
* @param hierarchyContainer the SwingHierarchyContainer to name, if SwingHierarchyContainer is null,
* no action is performed and no exception is thrown.
*/
- private void name(SwingHierarchyContainer hierarchyContainer) {
+ private void name(HierarchyContainer<Component> hierarchyContainer) {
checkDispatchThread();
if (hierarchyContainer != null) {
- final Component component = hierarchyContainer.getComponentID()
- .getRealComponent();
+ final Component component = hierarchyContainer.getCompID()
+ .getComponent();
String compName = component.getName();
// SPECIAL HANDLING !!! -----------------------------------
if (component instanceof Dialog && compName != null
@@ -758,7 +772,7 @@ public class AUTSwingHierarchy extends AUTHierarchy compName = null;
}
// --------------------------------------------------------
- SwingHierarchyContainer hierarchyParent = null;
+ HierarchyContainer<Component> hierarchyParent = null;
final Container parent = component.getParent();
if (parent != null) {
hierarchyParent = getHierarchyContainer(parent);
@@ -802,8 +816,8 @@ public class AUTSwingHierarchy extends AUTHierarchy * @param swingComponent The component for which the name is being checked.
* @return true if the name is treated as unique, false otherwise.
*/
- private boolean isUniqueName(SwingHierarchyContainer parent, String name,
- Component swingComponent) {
+ private boolean isUniqueName(HierarchyContainer<Component> parent, + String name, Component swingComponent) {
if (name == null) {
return false;
@@ -811,12 +825,12 @@ public class AUTSwingHierarchy extends AUTHierarchy if (parent == null) {
return true;
}
- SwingHierarchyContainer[] compIDs = parent.getComponents();
+ HierarchyContainer<Component>[] compIDs = parent.getComps();
final int length = compIDs.length;
for (int index = 0; index < length; index++) {
Component childComponent =
- compIDs[index].getComponentID().getRealComponent();
+ compIDs[index].getCompID().getComponent();
Object childName = childComponent.getName();
if (name.equals(childName) && childComponent != swingComponent) {
@@ -834,9 +848,9 @@ public class AUTSwingHierarchy extends AUTHierarchy }
/**
- * Returns all descendents of the given <code>component</code>
+ * Returns all descendants of the given <code>component</code>
* @param c a <code>component</code> value
- * @return a <code>collection</code> of the component's descendents or an
+ * @return a <code>collection</code> of the component's descendants or an
* empty <code>collection</code> if nothing was found or <code>c</code> is null.
*/
private Collection<Component> getComponents(Component c) {
diff --git a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingComponent.java b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingComponent.java index 0078ac1ab..37c5c54b0 100644 --- a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingComponent.java +++ b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingComponent.java @@ -14,27 +14,20 @@ import java.awt.Component; import org.eclipse.jubula.rc.common.components.AUTComponent; - /** * @author BREDEX GmbH * @created 26.04.2006 */ -public final class SwingComponent extends AUTComponent { - +public final class SwingComponent extends AUTComponent<Component> { /** * create an instance from a Swing component. This constructor is used when * working with real instances instead of mere class descriptions. - * @param component Base for identification + * + * @param component + * Base for identification * */ public SwingComponent(Component component) { super(component); } - - /** - * @return Returns the real component. - */ - public Component getRealComponent() { - return (Component)getComp(); - } }
\ No newline at end of file diff --git a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingHierarchyContainer.java b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingHierarchyContainer.java index fe905e713..8b76c080d 100644 --- a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingHierarchyContainer.java +++ b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/components/SwingHierarchyContainer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2010 BREDEX GmbH. + * Copyright (c) 2015 BREDEX GmbH. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -10,96 +10,32 @@ *******************************************************************************/ package org.eclipse.jubula.rc.swing.components; -import java.util.EventListener; +import java.awt.Component; +import org.eclipse.jubula.rc.common.components.AUTComponent; import org.eclipse.jubula.rc.common.components.HierarchyContainer; - /** * @author BREDEX GmbH - * @created 04.05.2006 */ -public class SwingHierarchyContainer extends HierarchyContainer { +public class SwingHierarchyContainer extends HierarchyContainer<Component> { /** - * @param component the SwtComponentIdentifier - * @param parent the SwingHierarchyContainer + * @param component + * the component + * @param parent + * the parent */ - public SwingHierarchyContainer(SwingComponent component, - SwingHierarchyContainer parent) { + public SwingHierarchyContainer(AUTComponent<Component> component, + HierarchyContainer<Component> parent) { super(component, parent); } - - /** - * @param component the SwtComponentIdentifier - */ - public SwingHierarchyContainer(SwingComponent component) { - this(component, null); - } - - /** - * @param component SwingHierarchyContainer - */ - public void add(SwingHierarchyContainer component) { - super.add(component); - } - - /** - * @return SwingComponent - */ - public SwingComponent getComponentID() { - return (SwingComponent)super.getCompID(); - } - - /** - * @return SwingHierarchyContainer[] - */ - public SwingHierarchyContainer[] getComponents() { - if (super.getComps().length == 0) { - return new SwingHierarchyContainer[0]; - } - HierarchyContainer[] containerArray = super.getComps(); - SwingHierarchyContainer[] swingContainerArray = - new SwingHierarchyContainer[containerArray.length]; - for (int i = 0; i < containerArray.length; i++) { - swingContainerArray[i] = - (SwingHierarchyContainer)containerArray[i]; - } - return swingContainerArray; - } - - /** - * @return EventListener[] - */ - public EventListener[] getListeners() { - return super.getListnrs(); - } /** - * @return SwingHierarchyContainer - */ - public SwingHierarchyContainer getParent() { - return (SwingHierarchyContainer)super.getPrnt(); - } - - /** - * @param parent SwingHierarchyContainer + * @param component + * the component */ - public void setParent(SwingHierarchyContainer parent) { - super.setPrnt(parent); + public SwingHierarchyContainer(AUTComponent<Component> component) { + super(component); } - - /** - * @param listener EventListener - */ - public void addContainerListener(EventListener listener) { - super.addContainerListnr(listener); - } - - /** - * @param listener EventListener - */ - public void removeContainerListener(EventListener listener) { - super.removeContainerListener(listener); - } }
\ No newline at end of file diff --git a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/tester/SwingApplicationTester.java b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/tester/SwingApplicationTester.java index 5ccb5a24a..e9403c923 100644 --- a/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/tester/SwingApplicationTester.java +++ b/org.eclipse.jubula.rc.swing/src/org/eclipse/jubula/rc/swing/tester/SwingApplicationTester.java @@ -34,7 +34,6 @@ import org.eclipse.jubula.rc.common.tester.AbstractApplicationTester; import org.eclipse.jubula.rc.common.util.KeyStrokeUtil; import org.eclipse.jubula.rc.common.util.MatchUtil; import org.eclipse.jubula.rc.common.util.Verifier; -import org.eclipse.jubula.rc.swing.components.SwingComponent; import org.eclipse.jubula.rc.swing.listener.ComponentHandler; import org.eclipse.jubula.rc.swing.listener.FocusTracker; import org.eclipse.jubula.rc.swing.tester.util.EventListener; @@ -473,8 +472,8 @@ public class SwingApplicationTester extends AbstractApplicationTester { Set<? extends AUTComponent> components = ComponentHandler .getAutHierarchy().getHierarchyMap().keySet(); for (AUTComponent component : components) { - Component c = ((SwingComponent) component) - .getRealComponent(); + Component c = ((AUTComponent<Component>) component) + .getComponent(); if (c.isShowing()) { if (c instanceof Frame) { Frame frame = (Frame) c; |