From: Olivier Capillon Date: Wed, 15 Jul 2009 15:18:16 +0000 (+0000) Subject: Add project org.argeo.slc.support.jemmy X-Git-Tag: argeo-slc-2.1.7~1666 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=0d49dd459044fd6aae50715cf1f9886327b27694;p=gpl%2Fargeo-slc.git Add project org.argeo.slc.support.jemmy git-svn-id: https://svn.argeo.org/slc/trunk@2719 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/runtime/org.argeo.slc.support.jemmy/.classpath b/runtime/org.argeo.slc.support.jemmy/.classpath new file mode 100644 index 000000000..9653ef0ac --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/runtime/org.argeo.slc.support.jemmy/.project b/runtime/org.argeo.slc.support.jemmy/.project new file mode 100644 index 000000000..539f8268e --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/.project @@ -0,0 +1,23 @@ + + + org.argeo.slc.support.jemmy + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + diff --git a/runtime/org.argeo.slc.support.jemmy/.settings/org.eclipse.jdt.core.prefs b/runtime/org.argeo.slc.support.jemmy/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..93d31747f --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Fri Aug 29 11:10:18 CEST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/runtime/org.argeo.slc.support.jemmy/pom.xml b/runtime/org.argeo.slc.support.jemmy/pom.xml new file mode 100644 index 000000000..aaa5b1457 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/pom.xml @@ -0,0 +1,58 @@ + + 4.0.0 + + org.argeo.slc + runtime + 0.11.4-SNAPSHOT + .. + + org.argeo.slc.runtime + org.argeo.slc.support.jemmy + Argeo SLC Support Jemmy + Helper classes for the Jemmy framework + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + org.apache.felix + maven-bundle-plugin + ${version.maven-bundle-plugin} + + + + org.argeo.slc.jemmy + + org.netbeans.jemmy, + org.netbeans.jemmy.operators, + org.netbeans.jemmy.util + + + + + + + + + + + org.argeo.dep.jemmy + org.argeo.dep.jemmy.nb61 + + + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/AbstractComponentWrapper.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/AbstractComponentWrapper.java new file mode 100644 index 000000000..52f47452a --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/AbstractComponentWrapper.java @@ -0,0 +1,110 @@ +package org.argeo.slc.jemmy; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.netbeans.jemmy.operators.ComponentOperator; + +public class AbstractComponentWrapper implements ComponentWrapper { + + protected ComponentWrapper parent; + + /** + * List of children ComponentWrapper + */ + protected List children = new ArrayList(); + + protected WrapperLocator locator; + + protected String prefix; + + public ComponentOperator find() { + return locator.find(this); + } + + protected String createNewKey(String oldKey) { + return (prefix == null) ? oldKey : (prefix + "." + oldKey); + } + + protected void addToAccessorMap(Map accessors, String oldKey, + Object accessor) { + String newKey = createNewKey(oldKey); + if (accessors.containsKey(newKey)) { + throw new ConfigRuntimeException("An Accessor with key '" + newKey + + "' was already registered"); + } + accessors.put(newKey, accessor); + } + + public Map getAccessors(Class accessorClass) { + Map accessors = new HashMap(); + if (accessorClass.isInstance(this)) { + addToAccessorMap(accessors, ((Accessor) this).getFieldName(), this); + } + for (int i = 0; i < children.size(); i++) { + Map childAccessors = ((ComponentWrapper) children.get(i)) + .getAccessors(accessorClass); + + Set entries = childAccessors.entrySet(); + Iterator it = entries.iterator(); + + while (it.hasNext()) { + Map.Entry keyValue = (Map.Entry) it.next(); + addToAccessorMap(accessors, keyValue.getKey().toString(), + keyValue.getValue()); + } + } + return accessors; + } + + public ComponentWrapper getParent() { + return parent; + } + + public void setParent(ComponentWrapper parent) { + if (this.parent != null) { + throw new ConfigRuntimeException("Parent already set"); + } + this.parent = parent; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + + // check that all elements of the list are ComponentWrapper + // and set their parent + for (int i = 0; i < this.children.size(); i++) { + ComponentWrapper wrapper = (ComponentWrapper) this.children.get(i); + if (wrapper == null) { + throw new ConfigRuntimeException( + "Children of ComponentWrappers must be ComponentWrappers"); + } + wrapper.setParent(this); + } + } + + public WrapperLocator getLocator() { + return locator; + } + + public void setLocator(WrapperLocator locator) { + this.locator = locator; + } + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Accessor.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Accessor.java new file mode 100644 index 000000000..9790e8cad --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Accessor.java @@ -0,0 +1,7 @@ +package org.argeo.slc.jemmy; + +public interface Accessor { + + public String getFieldName(); + +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Actuator.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Actuator.java new file mode 100644 index 000000000..63db3e9b2 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/Actuator.java @@ -0,0 +1,7 @@ +package org.argeo.slc.jemmy; + + +public interface Actuator extends Accessor { + + void perform(); +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ComponentWrapper.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ComponentWrapper.java new file mode 100644 index 000000000..2e2a04876 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ComponentWrapper.java @@ -0,0 +1,21 @@ +package org.argeo.slc.jemmy; + +import java.util.Map; + +import org.netbeans.jemmy.operators.ComponentOperator; + +public interface ComponentWrapper { + + /** + * Finds the component described by the ComponentWrapper + * in the GUI + * @return a Jemmy ComponentOperator for the found component + */ + public ComponentOperator find(); + + public void setParent(ComponentWrapper parent); + + public ComponentWrapper getParent(); + + public Map getAccessors(Class accessorClass); +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ConfigRuntimeException.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ConfigRuntimeException.java new file mode 100644 index 000000000..09ff04312 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ConfigRuntimeException.java @@ -0,0 +1,20 @@ +package org.argeo.slc.jemmy; + +public class ConfigRuntimeException extends UIRuntimeException{ + /** + * + */ + private static final long serialVersionUID = 1L; + public ConfigRuntimeException(){ + super(); + } + public ConfigRuntimeException(String s){ + super(s); + } + public ConfigRuntimeException(Throwable t){ + super(t); + } + public ConfigRuntimeException(String s, Throwable t){ + super(s,t); + } +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/FictiveComponentWrapper.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/FictiveComponentWrapper.java new file mode 100644 index 000000000..6964a3196 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/FictiveComponentWrapper.java @@ -0,0 +1,36 @@ +package org.argeo.slc.jemmy; + +import java.util.HashMap; +import java.util.Map; + +import org.netbeans.jemmy.operators.ComponentOperator; + +public class FictiveComponentWrapper implements ComponentWrapper { + + protected ComponentWrapper parent; + + public ComponentOperator find() { + // just ask the parent + return parent.find(); + } + + /** + * Return only itself (if the class matches) + */ + public Map getAccessors(Class accessorClass) { + Map accessors = new HashMap(); + if (accessorClass.isInstance(this)) { + accessors.put(((Accessor) this).getFieldName(), this); + } + return accessors; + } + + public ComponentWrapper getParent() { + return parent; + } + + public void setParent(ComponentWrapper parent) { + this.parent = parent; + } + +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ReadAccessor.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ReadAccessor.java new file mode 100644 index 000000000..9d82bd417 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/ReadAccessor.java @@ -0,0 +1,8 @@ +package org.argeo.slc.jemmy; + + +public interface ReadAccessor extends Accessor { + + public String get(); + +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/UIRuntimeException.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/UIRuntimeException.java new file mode 100644 index 000000000..7fcdd7d8b --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/UIRuntimeException.java @@ -0,0 +1,20 @@ +package org.argeo.slc.jemmy; + +public class UIRuntimeException extends RuntimeException { + /** + * + */ + private static final long serialVersionUID = 1L; + public UIRuntimeException(){ + super(); + } + public UIRuntimeException(String s){ + super(s); + } + public UIRuntimeException(Throwable t){ + super(t); + } + public UIRuntimeException(String s, Throwable t){ + super(s,t); + } +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WrapperLocator.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WrapperLocator.java new file mode 100644 index 000000000..56d919bc5 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WrapperLocator.java @@ -0,0 +1,8 @@ +package org.argeo.slc.jemmy; + +import org.netbeans.jemmy.operators.ComponentOperator; + +public interface WrapperLocator { + + public ComponentOperator find(ComponentWrapper wrapper); +} diff --git a/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WriteAccessor.java b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WriteAccessor.java new file mode 100644 index 000000000..083df1283 --- /dev/null +++ b/runtime/org.argeo.slc.support.jemmy/src/main/java/org/argeo/slc/jemmy/WriteAccessor.java @@ -0,0 +1,8 @@ +package org.argeo.slc.jemmy; + + +public interface WriteAccessor extends Accessor { + + public void set(String value); + +}