added current source code
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/commit/7e06e81f Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/tree/7e06e81f Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/diff/7e06e81f Branch: refs/heads/taverna2 Commit: 7e06e81f774bcff23caf3c73b08e6740c28ae6e5 Parents: Author: edikaradumi <[email protected]> Authored: Sun Jul 10 13:00:21 2016 +0100 Committer: edikaradumi <[email protected]> Committed: Sun Jul 10 13:00:21 2016 +0100 ---------------------------------------------------------------------- .project | 17 ++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.m2e.core.prefs | 4 + .../.classpath | 31 +++ apache-taverna-plugin-gis-activity-ui/.project | 23 ++ .../.settings/org.eclipse.core.resources.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + apache-taverna-plugin-gis-activity-ui/pom.xml | 133 ++++++++++ .../gis/ui/config/GisConfigurationPanel.java | 118 +++++++++ .../gis/ui/config/GisConfigureAction.java | 40 +++ .../gis/ui/menu/GisConfigureMenuAction.java | 27 ++ .../gis/ui/serviceprovider/GisServiceDesc.java | 121 +++++++++ .../gis/ui/serviceprovider/GisServiceIcon.java | 32 +++ .../ui/serviceprovider/GisServiceProvider.java | 162 ++++++++++++ .../GisServiceProviderConfig.java | 31 +++ .../ui/view/GisActivityContextViewFactory.java | 22 ++ .../taverna/gis/ui/view/GisContextualView.java | 68 +++++ ...rvicedescriptions.ServiceDescriptionProvider | 1 + .../net.sf.taverna.t2.ui.menu.MenuComponent | 1 + ...a.t2.workbench.activityicons.ActivityIconSPI | 1 + ...ntextualviews.activity.ContextualViewFactory | 1 + .../src/main/resources/exampleIcon.png | Bin 0 -> 3654 bytes .../ui/TavernaWorkbenchWithExamplePlugin.java | 21 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../pom.properties | 7 + .../pom.xml | 133 ++++++++++ ...rvicedescriptions.ServiceDescriptionProvider | 1 + .../net.sf.taverna.t2.ui.menu.MenuComponent | 1 + ...a.t2.workbench.activityicons.ActivityIconSPI | 1 + ...ntextualviews.activity.ContextualViewFactory | 1 + .../target/classes/exampleIcon.png | Bin 0 -> 3654 bytes .../gis/ui/config/GisConfigurationPanel.class | Bin 0 -> 3360 bytes .../gis/ui/config/GisConfigureAction.class | Bin 0 -> 2449 bytes .../gis/ui/menu/GisConfigureMenuAction.class | Bin 0 -> 1330 bytes .../gis/ui/serviceprovider/GisServiceDesc.class | Bin 0 -> 3967 bytes .../gis/ui/serviceprovider/GisServiceIcon.class | Bin 0 -> 1538 bytes .../ui/serviceprovider/GisServiceProvider.class | Bin 0 -> 7063 bytes .../GisServiceProviderConfig.class | Bin 0 -> 1294 bytes .../ui/view/GisActivityContextViewFactory.class | Bin 0 -> 1501 bytes .../taverna/gis/ui/view/GisContextualView.class | Bin 0 -> 2207 bytes .../ui/TavernaWorkbenchWithExamplePlugin.class | Bin 0 -> 616 bytes apache-taverna-plugin-gis-activity/.classpath | 31 +++ apache-taverna-plugin-gis-activity/.project | 23 ++ .../.settings/org.eclipse.core.resources.prefs | 5 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + apache-taverna-plugin-gis-activity/pom.xml | 45 ++++ .../org/apache/taverna/gis/GisActivity.java | 248 +++++++++++++++++++ .../gis/GisActivityConfigurationBean.java | 52 ++++ .../taverna/gis/GisActivityHealthChecker.java | 61 +++++ ...averna.t2.workflowmodel.health.HealthChecker | 1 + .../org/apache/taverna/gis/GisActivityTest.java | 118 +++++++++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../pom.properties | 7 + .../apache-taverna-plugin-gis-activity/pom.xml | 45 ++++ ...averna.t2.workflowmodel.health.HealthChecker | 1 + .../org/apache/taverna/gis/GisActivity$1.class | Bin 0 -> 6765 bytes .../org/apache/taverna/gis/GisActivity.class | Bin 0 -> 4153 bytes .../gis/GisActivityConfigurationBean.class | Bin 0 -> 1006 bytes .../taverna/gis/GisActivityHealthChecker.class | Bin 0 -> 2896 bytes .../apache/taverna/gis/GisActivityTest.class | Bin 0 -> 5180 bytes .../wps_config.xml | 212 ++++++++++++++++ apache-taverna-plugin-gis-plugin/.project | 17 ++ .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.m2e.core.prefs | 4 + apache-taverna-plugin-gis-plugin/pom.xml | 41 +++ pom.xml | 144 +++++++++++ 68 files changed, 2090 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/.project ---------------------------------------------------------------------- diff --git a/.project b/.project new file mode 100644 index 0000000..5049237 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>apache-taverna-plugin-gis</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/.settings/org.eclipse.core.resources.prefs ---------------------------------------------------------------------- diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/.settings/org.eclipse.m2e.core.prefs ---------------------------------------------------------------------- diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/.classpath ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/.classpath b/apache-taverna-plugin-gis-activity-ui/.classpath new file mode 100644 index 0000000..698778f --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/.classpath @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/.project ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/.project b/apache-taverna-plugin-gis-activity-ui/.project new file mode 100644 index 0000000..f53dd10 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>apache-taverna-plugin-gis-activity-ui</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.core.resources.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.core.resources.prefs b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.jdt.core.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.jdt.core.prefs b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ec4300d --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.m2e.core.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.m2e.core.prefs b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/pom.xml ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/pom.xml b/apache-taverna-plugin-gis-activity-ui/pom.xml new file mode 100644 index 0000000..0d82976 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/pom.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.taverna.gis</groupId> + <artifactId>apache-taverna-plugin-gis</artifactId> + <version>0.0.1-incubating-SNAPSHOT</version> + </parent> + <artifactId>apache-taverna-plugin-gis-activity-ui</artifactId> + <name>Gis Taverna activity UI bindings</name> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>apache-taverna-plugin-gis-activity</artifactId> + <version>0.0.1-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>activity-palette-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>menu-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>contextual-views-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-impl</groupId> + <artifactId>activity-tools</artifactId> + <version>${t2.ui.impl.version}</version> + </dependency> + + <!-- Workbench runtime for testing from IDE, remove if not using TavernaWorkbenchWithExamplePlugin.main() --> + <dependency> + <groupId>net.sf.taverna.t2.taverna-workbench</groupId> + <artifactId>workbench-dev</artifactId> + <version>${t2.workbench.version}</version> + <scope>test</scope> + + <exclusions> + + <!-- Disable various activities that are not relevant to testing our + example activity. If you want to re-enable for instance WSDL activity, remember + to comment out the exclusion for both wsdl-activity-ui and wsdl-activity + further down. --> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>apiconsumer-activity-ui</artifactId> + </exclusion> + + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>biomoby-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>biomart-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>soaplab-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>ncbi-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>rshell-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>spreadsheet-import-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>wsdl-activity-ui</artifactId> + </exclusion> + + <!-- .. and the t2.activities counterparts --> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>apiconsumer-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>biomoby-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>biomart-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>soaplab-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>ncbi-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>rshell-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>spreadsheet-import-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>wsdl-activity</artifactId> + </exclusion> + <!-- Perspectives pulling in too many dependencies --> + <exclusion> + <!-- fails due to direct dependency to WSDL --> + <groupId>net.sf.taverna.t2.ui-exts</groupId> + <artifactId>perspective-biocatalogue</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-exts</groupId> + <artifactId>perspective-myexperiment</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> +</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigurationPanel.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigurationPanel.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigurationPanel.java new file mode 100644 index 0000000..2980ffd --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigurationPanel.java @@ -0,0 +1,118 @@ +package org.apache.taverna.gis.ui.config; + +import java.awt.GridLayout; +import java.net.URI; + +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JTextField; + +import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel; + +import org.apache.taverna.gis.GisActivity; +import org.apache.taverna.gis.GisActivityConfigurationBean; + + +@SuppressWarnings("serial") +public class GisConfigurationPanel + extends + ActivityConfigurationPanel<GisActivity, + GisActivityConfigurationBean> { + + private GisActivity activity; + private GisActivityConfigurationBean configBean; + + private JTextField fieldString; + private JTextField fieldURI; + + public GisConfigurationPanel(GisActivity activity) { + this.activity = activity; + initGui(); + } + + protected void initGui() { + removeAll(); + setLayout(new GridLayout(0, 2)); + + // FIXME: Create GUI depending on activity configuration bean + JLabel labelString = new JLabel("Example string:"); + add(labelString); + fieldString = new JTextField(20); + add(fieldString); + labelString.setLabelFor(fieldString); + + JLabel labelURI = new JLabel("Example URI:"); + add(labelURI); + fieldURI = new JTextField(25); + add(fieldURI); + labelURI.setLabelFor(fieldURI); + + // Populate fields from activity configuration bean + refreshConfiguration(); + } + + /** + * Check that user values in UI are valid + */ + @Override + public boolean checkValues() { + try { + URI.create(fieldURI.getText()); + } catch (IllegalArgumentException ex) { + JOptionPane.showMessageDialog(this, ex.getCause().getMessage(), + "Invalid URI", JOptionPane.ERROR_MESSAGE); + // Not valid, return false + return false; + } + // All valid, return true + return true; + } + + /** + * Return configuration bean generated from user interface last time + * noteConfiguration() was called. + */ + @Override + public GisActivityConfigurationBean getConfiguration() { + // Should already have been made by noteConfiguration() + return configBean; + } + + /** + * Check if the user has changed the configuration from the original + */ + @Override + public boolean isConfigurationChanged() { + String originalString = configBean.getProcessIdentifier(); + String originalUri = configBean.getOgcServiceUri().toASCIIString(); + // true (changed) unless all fields match the originals + return ! (originalString.equals(fieldString.getText()) + && originalUri.equals(fieldURI.getText())); + } + + /** + * Prepare a new configuration bean from the UI, to be returned with + * getConfiguration() + */ + @Override + public void noteConfiguration() { + configBean = new GisActivityConfigurationBean(); + + // FIXME: Update bean fields from your UI elements + configBean.setProcessIdentifier(fieldString.getText()); + configBean.setOgcServiceUri(URI.create(fieldURI.getText())); + } + + /** + * Update GUI from a changed configuration bean (perhaps by undo/redo). + * + */ + @Override + public void refreshConfiguration() { + configBean = activity.getConfiguration(); + + // FIXME: Update UI elements from your bean fields + fieldString.setText(configBean.getProcessIdentifier()); + fieldURI.setText(configBean.getOgcServiceUri().toASCIIString()); + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigureAction.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigureAction.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigureAction.java new file mode 100644 index 0000000..cc900ba --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/config/GisConfigureAction.java @@ -0,0 +1,40 @@ +package org.apache.taverna.gis.ui.config; + +import java.awt.Frame; +import java.awt.event.ActionEvent; + +import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction; +import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog; + +import org.apache.taverna.gis.GisActivity; +import org.apache.taverna.gis.GisActivityConfigurationBean; + +@SuppressWarnings("serial") +public class GisConfigureAction + extends + ActivityConfigurationAction<GisActivity, + GisActivityConfigurationBean> { + + public GisConfigureAction(GisActivity activity, Frame owner) { + super(activity); + } + + @SuppressWarnings("unchecked") + public void actionPerformed(ActionEvent e) { + ActivityConfigurationDialog<GisActivity, GisActivityConfigurationBean> currentDialog = ActivityConfigurationAction + .getDialog(getActivity()); + if (currentDialog != null) { + currentDialog.toFront(); + return; + } + GisConfigurationPanel panel = new GisConfigurationPanel( + getActivity()); + ActivityConfigurationDialog<GisActivity, + GisActivityConfigurationBean> dialog = new ActivityConfigurationDialog<GisActivity, GisActivityConfigurationBean>( + getActivity(), panel); + + ActivityConfigurationAction.setDialog(getActivity(), dialog); + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.java new file mode 100644 index 0000000..5bc372d --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.java @@ -0,0 +1,27 @@ +package org.apache.taverna.gis.ui.menu; + +import javax.swing.Action; + +import net.sf.taverna.t2.workbench.activitytools.AbstractConfigureActivityMenuAction; +import org.apache.taverna.gis.GisActivity; +import org.apache.taverna.gis.ui.config.GisConfigureAction; + +public class GisConfigureMenuAction extends + AbstractConfigureActivityMenuAction<GisActivity> { + + public GisConfigureMenuAction() { + super(GisActivity.class); + } + + @Override + protected Action createAction() { + GisActivity a = findActivity(); + Action result = null; + result = new GisConfigureAction(findActivity(), + getParentFrame()); + result.putValue(Action.NAME, "Configure example service"); + addMenuDots(result); + return result; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.java new file mode 100644 index 0000000..fdae85b --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.java @@ -0,0 +1,121 @@ +package org.apache.taverna.gis.ui.serviceprovider; + +import java.net.URI; +import java.util.Arrays; +import java.util.List; + +import javax.swing.Icon; + +import net.sf.taverna.t2.servicedescriptions.ServiceDescription; +import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean; + +import org.apache.taverna.gis.GisActivity; +import org.apache.taverna.gis.GisActivityConfigurationBean; + +public class GisServiceDesc extends ServiceDescription<GisActivityConfigurationBean> { + + /** + * The subclass of Activity which should be instantiated when adding a service + * for this description + */ + @Override + public Class<? extends Activity<GisActivityConfigurationBean>> getActivityClass() { + return GisActivity.class; + } + + /** + * The configuration bean which is to be used for configuring the instantiated activity. + * Making this bean will typically require some of the fields set on this service + * description, like an endpoint URL or method name. + * + */ + @Override + public GisActivityConfigurationBean getActivityConfiguration() { + GisActivityConfigurationBean bean = new GisActivityConfigurationBean(); + bean.setOgcServiceUri(ogcServiceUri); + bean.setProcessIdentifier(processIdentifier); + + bean.setInputPortDefinitions(inputPortDefinitions); + bean.setOutputPortDefinitions(outputPortDefinitions); + + return bean; + } + + /** + * An icon to represent this service description in the service palette. + */ + @Override + public Icon getIcon() { + return GisServiceIcon.getIcon(); + } + + /** + * The display name that will be shown in service palette and will + * be used as a template for processor name when added to workflow. + */ + @Override + public String getName() { + return processIdentifier; + } + + /** + * The path to this service description in the service palette. Folders + * will be created for each element of the returned path. + */ + @Override + public List<String> getPath() { + // For deeper paths you may return several strings + return Arrays.asList("GIS", "WPS " + getOgcServiceUri()); + } + + /** + * Return a list of data values uniquely identifying this service + * description (to avoid duplicates). Include only primary key like fields, + * ie. ignore descriptions, icons, etc. + */ + @Override + protected List<? extends Object> getIdentifyingData() { + // FIXME: Use your fields instead of example fields + return Arrays.<Object>asList(ogcServiceUri, processIdentifier); + } + + + // FIXME: Replace example fields and getters/setters with any required + // and optional fields. (All fields are searchable in the Service palette, + // for instance try a search for exampleString:3) + private URI ogcServiceUri; + private String processIdentifier; + private List<ActivityInputPortDefinitionBean> inputPortDefinitions; + private List<ActivityOutputPortDefinitionBean> outputPortDefinitions; + + public URI getOgcServiceUri() { + return ogcServiceUri; + } + public void setOgcServiceUri(URI ogcServiceUri) { + this.ogcServiceUri = ogcServiceUri; + } + public String getProcessIdentifier() { + return processIdentifier; + } + public void setProcessIdentifier(String processIdentifier) { + this.processIdentifier = processIdentifier; + } + + public List<ActivityInputPortDefinitionBean> getInputPortDefinitions() { + return inputPortDefinitions; + } + + public void setInputPortDefinitions(List<ActivityInputPortDefinitionBean> inputPortDefinitions) { + this.inputPortDefinitions = inputPortDefinitions; + } + + public List<ActivityOutputPortDefinitionBean> getOutputPortDefinitions() { + return outputPortDefinitions; + } + + public void setOutputPortDefinitions(List<ActivityOutputPortDefinitionBean> outputPortDefinitions) { + this.outputPortDefinitions = outputPortDefinitions; + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.java new file mode 100644 index 0000000..2c3a1b0 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.java @@ -0,0 +1,32 @@ +package org.apache.taverna.gis.ui.serviceprovider; + +import javax.swing.Icon; +import javax.swing.ImageIcon; + +import net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI; +import net.sf.taverna.t2.workflowmodel.processor.activity.Activity; +import org.apache.taverna.gis.GisActivity; + +public class GisServiceIcon implements ActivityIconSPI { + + private static Icon icon; + + public int canProvideIconScore(Activity<?> activity) { + if (activity instanceof GisActivity) { + return DEFAULT_ICON; + } + return NO_ICON; + } + + public Icon getIcon(Activity<?> activity) { + return getIcon(); + } + + public static Icon getIcon() { + if (icon == null) { + icon = new ImageIcon(GisServiceIcon.class.getResource("/exampleIcon.png")); + } + return icon; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java new file mode 100644 index 0000000..d252201 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java @@ -0,0 +1,162 @@ +package org.apache.taverna.gis.ui.serviceprovider; + +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import javax.swing.Icon; + +import org.n52.wps.client.WPSClientSession; + +import net.opengis.wps.x100.InputDescriptionType; +import net.opengis.wps.x100.OutputDescriptionType; +import net.opengis.wps.x100.ProcessDescriptionType; +import net.sf.taverna.t2.servicedescriptions.AbstractConfigurableServiceProvider; +import net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider; +import net.sf.taverna.t2.servicedescriptions.ServiceDescription; +import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean; + +public class GisServiceProvider extends AbstractConfigurableServiceProvider<GisServiceProviderConfig> + implements ConfigurableServiceProvider<GisServiceProviderConfig> { + + public GisServiceProvider() { + super(new GisServiceProviderConfig()); + } + + private static final URI providerId = URI + .create("http://cs.man.ac.uk/2016/service-provider/apache-taverna-plugin-gis"); + + /** + * Do the actual search for services. Return using the callBack parameter. + */ + @SuppressWarnings("unchecked") + public void findServiceDescriptionsAsync(FindServiceDescriptionsCallBack callBack) { + // Use callback.status() for long-running searches + callBack.status("Resolving GIS services"); + + List<ServiceDescription> results = new ArrayList<ServiceDescription>(); + + // FIXME: Implement the actual service search/lookup instead + // of dummy for-loop + + GisServiceDesc service = new GisServiceDesc(); + // Populate the service description bean + service.setOgcServiceUri(getConfiguration().getOgcServiceUri()); + service.setProcessIdentifier(getConfiguration().getProcessIdentifier()); + + // TODO: Optional: set description (Set a better description + service.setDescription(getConfiguration().getProcessIdentifier()); + + // TODO: Exctract in separate method + // Get input ports + + WPSClientSession wpsClient = WPSClientSession.getInstance(); + + ProcessDescriptionType processDescription; + try { + processDescription = wpsClient + .getProcessDescription(getConfiguration().getOgcServiceUri().toString(), getConfiguration().getProcessIdentifier()); + + InputDescriptionType[] inputList = processDescription.getDataInputs() + .getInputArray(); + + List<ActivityInputPortDefinitionBean> inputPortDefinitions = new ArrayList<ActivityInputPortDefinitionBean>(); + + for (InputDescriptionType input : inputList) { + ActivityInputPortDefinitionBean newInputPort = new ActivityInputPortDefinitionBean(); + newInputPort.setName(input.getIdentifier().getStringValue()); + newInputPort.setDepth(0); + newInputPort.setAllowsLiteralValues(true); + newInputPort.setHandledReferenceSchemes(null); + newInputPort.setTranslatedElementType(String.class); + + inputPortDefinitions.add(newInputPort); + + } + + service.setInputPortDefinitions(inputPortDefinitions); + + + // Get output ports + + OutputDescriptionType[] outputList = processDescription.getProcessOutputs().getOutputArray(); + List<ActivityOutputPortDefinitionBean> outputPortDefinitions = new ArrayList<ActivityOutputPortDefinitionBean>(); + + for( OutputDescriptionType output : outputList ) + { + ActivityOutputPortDefinitionBean newOutputPort = new ActivityOutputPortDefinitionBean(); + newOutputPort.setName(output.getIdentifier().getStringValue()); + newOutputPort.setDepth(0); + + outputPortDefinitions.add(newOutputPort); + + } + + service.setOutputPortDefinitions(outputPortDefinitions); + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + results.add(service); + + // partialResults() can also be called several times from inside + // for-loop if the full search takes a long time + callBack.partialResults(results); + + + + + // No more results will be coming + callBack.finished(); + } + + /** + * Icon for service provider + */ + public Icon getIcon() { + return GisServiceIcon.getIcon(); + } + + /** + * Name of service provider, appears in right click for 'Remove service + * provider' + */ + public String getName() { + return "Geospatial Web Services"; + } + + @Override + public String toString() { + return "Geospatial Web Services " + getConfiguration().getProcessIdentifier(); + } + + public String getId() { + return providerId.toASCIIString(); + } + + @Override + protected List<? extends Object> getIdentifyingData() { + return Arrays.asList(getConfiguration().getOgcServiceUri(), getConfiguration().getProcessIdentifier()); + } + + + @Override + public List<GisServiceProviderConfig> getDefaultConfigurations(){ + + GisServiceProviderConfig myConfig = new GisServiceProviderConfig(); + + myConfig.setOgcServiceUri(URI.create("http://localhost:8080/geoserver/ows")); + myConfig.setProcessIdentifier("gs:StringConcatWPS"); + + return Arrays.asList(myConfig); + + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.java new file mode 100644 index 0000000..7b58a15 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.java @@ -0,0 +1,31 @@ +package org.apache.taverna.gis.ui.serviceprovider; + +import java.net.URI; + +import net.sf.taverna.t2.lang.beans.PropertyAnnotation; + +public class GisServiceProviderConfig { + private URI ogcServiceUri = URI.create("http://localhost:8080/geoserver/ows"); + private String processIdentifier = "gs:StringConcatWPS"; + + // TODO: Display name not working, hide getClass + + @PropertyAnnotation(displayName="OGC Web Service URI", preferred=true) + public URI getOgcServiceUri() { + return ogcServiceUri; + } + public void setOgcServiceUri(URI ogcServiceUri) { + this.ogcServiceUri = ogcServiceUri; + } + + // TODO: Display name not working + + @PropertyAnnotation(displayName="Process Identifier") + public String getProcessIdentifier() { + return processIdentifier; + } + public void setProcessIdentifier(String processIdentifier) { + this.processIdentifier = processIdentifier; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.java new file mode 100644 index 0000000..f2c7f4e --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.java @@ -0,0 +1,22 @@ +package org.apache.taverna.gis.ui.view; + +import java.util.Arrays; +import java.util.List; + +import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView; +import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory; + +import org.apache.taverna.gis.GisActivity; + +public class GisActivityContextViewFactory implements + ContextualViewFactory<GisActivity> { + + public boolean canHandle(Object selection) { + return selection instanceof GisActivity; + } + + public List<ContextualView> getViews(GisActivity selection) { + return Arrays.<ContextualView>asList(new GisContextualView(selection)); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisContextualView.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisContextualView.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisContextualView.java new file mode 100644 index 0000000..78df434 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/view/GisContextualView.java @@ -0,0 +1,68 @@ +package org.apache.taverna.gis.ui.view; + +import java.awt.Frame; + +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView; + +import org.apache.taverna.gis.GisActivity; +import org.apache.taverna.gis.GisActivityConfigurationBean; +import org.apache.taverna.gis.ui.config.GisConfigureAction; + +@SuppressWarnings("serial") +public class GisContextualView extends ContextualView { + private final GisActivity activity; + private JLabel description = new JLabel("ads"); + + public GisContextualView(GisActivity activity) { + this.activity = activity; + initView(); + } + + @Override + public JComponent getMainFrame() { + JPanel jPanel = new JPanel(); + jPanel.add(description); + refreshView(); + return jPanel; + } + + @Override + public String getViewTitle() { + GisActivityConfigurationBean configuration = activity + .getConfiguration(); + return "Gis service " + configuration.getProcessIdentifier(); + } + + /** + * Typically called when the activity configuration has changed. + */ + @Override + public void refreshView() { + GisActivityConfigurationBean configuration = activity + .getConfiguration(); + description.setText("Gis service " + configuration.getOgcServiceUri() + + " - " + configuration.getProcessIdentifier()); + // TODO: Might also show extra service information looked + // up dynamically from endpoint/registry + } + + /** + * View position hint + */ + @Override + public int getPreferredPosition() { + // We want to be on top + return 100; + } + + @Override + public Action getConfigureAction(final Frame owner) { + return new GisConfigureAction(activity, owner); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider new file mode 100644 index 0000000..82952f3 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.serviceprovider.GisServiceProvider \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent new file mode 100644 index 0000000..ae4e8cb --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.menu.GisConfigureMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI new file mode 100644 index 0000000..3865625 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.serviceprovider.GisServiceIcon http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory new file mode 100644 index 0000000..4a0f6e3 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory @@ -0,0 +1 @@ + org.apache.taverna.gis.ui.view.GisActivityContextViewFactory http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/main/resources/exampleIcon.png ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/resources/exampleIcon.png b/apache-taverna-plugin-gis-activity-ui/src/main/resources/exampleIcon.png new file mode 100644 index 0000000..3ef7be4 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/src/main/resources/exampleIcon.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/src/test/java/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/test/java/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.java b/apache-taverna-plugin-gis-activity-ui/src/test/java/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.java new file mode 100644 index 0000000..ced2f43 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/src/test/java/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.java @@ -0,0 +1,21 @@ +package org.apache.taverna.gis.ui; + +import net.sf.taverna.t2.workbench.dev.DeveloperWorkbench; + +/** + * Run with parameters: + * + * -Xmx300m -XX:MaxPermSize=140m + * -Dsun.swing.enableImprovedDragGesture + * -Dtaverna.startup=. + * + * NOTE: Do not save any workflows made using this test mode, as the plugin + * information will be missing from the workflow file, and it will not open + * in a Taverna run normally. + * + */ +public class TavernaWorkbenchWithExamplePlugin { + public static void main(String[] args) throws Exception { + DeveloperWorkbench.main(args); + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/MANIFEST.MF ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/MANIFEST.MF b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..3d9fc4f --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: edi +Build-Jdk: 1.8.0_92 +Created-By: Maven Integration for Eclipse + http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.properties ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.properties b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.properties new file mode 100644 index 0000000..51aaad8 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Sun Jul 10 12:53:50 BST 2016 +version=0.0.1-incubating-SNAPSHOT +groupId=org.apache.taverna.gis +m2e.projectName=apache-taverna-plugin-gis-activity-ui +m2e.projectLocation=D\:\\UniManchester\\MScDissertation\\ApacheTavernaPluginGIS\\apache-taverna-plugin-gis\\apache-taverna-plugin-gis-activity-ui +artifactId=apache-taverna-plugin-gis-activity-ui http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.xml ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.xml b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.xml new file mode 100644 index 0000000..0d82976 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/maven/org.apache.taverna.gis/apache-taverna-plugin-gis-activity-ui/pom.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.taverna.gis</groupId> + <artifactId>apache-taverna-plugin-gis</artifactId> + <version>0.0.1-incubating-SNAPSHOT</version> + </parent> + <artifactId>apache-taverna-plugin-gis-activity-ui</artifactId> + <name>Gis Taverna activity UI bindings</name> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>apache-taverna-plugin-gis-activity</artifactId> + <version>0.0.1-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>activity-palette-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>menu-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-api</groupId> + <artifactId>contextual-views-api</artifactId> + <version>${t2.ui.api.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.ui-impl</groupId> + <artifactId>activity-tools</artifactId> + <version>${t2.ui.impl.version}</version> + </dependency> + + <!-- Workbench runtime for testing from IDE, remove if not using TavernaWorkbenchWithExamplePlugin.main() --> + <dependency> + <groupId>net.sf.taverna.t2.taverna-workbench</groupId> + <artifactId>workbench-dev</artifactId> + <version>${t2.workbench.version}</version> + <scope>test</scope> + + <exclusions> + + <!-- Disable various activities that are not relevant to testing our + example activity. If you want to re-enable for instance WSDL activity, remember + to comment out the exclusion for both wsdl-activity-ui and wsdl-activity + further down. --> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>apiconsumer-activity-ui</artifactId> + </exclusion> + + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>biomoby-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>biomart-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>soaplab-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>ncbi-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>rshell-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>spreadsheet-import-activity-ui</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-activities</groupId> + <artifactId>wsdl-activity-ui</artifactId> + </exclusion> + + <!-- .. and the t2.activities counterparts --> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>apiconsumer-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>biomoby-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>biomart-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>soaplab-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>ncbi-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>rshell-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>spreadsheet-import-activity</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>wsdl-activity</artifactId> + </exclusion> + <!-- Perspectives pulling in too many dependencies --> + <exclusion> + <!-- fails due to direct dependency to WSDL --> + <groupId>net.sf.taverna.t2.ui-exts</groupId> + <artifactId>perspective-biocatalogue</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.taverna.t2.ui-exts</groupId> + <artifactId>perspective-myexperiment</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> +</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider new file mode 100644 index 0000000..82952f3 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.serviceprovider.GisServiceProvider \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent new file mode 100644 index 0000000..ae4e8cb --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.menu.GisConfigureMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI new file mode 100644 index 0000000..3865625 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI @@ -0,0 +1 @@ +org.apache.taverna.gis.ui.serviceprovider.GisServiceIcon http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory new file mode 100644 index 0000000..4a0f6e3 --- /dev/null +++ b/apache-taverna-plugin-gis-activity-ui/target/classes/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory @@ -0,0 +1 @@ + org.apache.taverna.gis.ui.view.GisActivityContextViewFactory http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/exampleIcon.png ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/exampleIcon.png b/apache-taverna-plugin-gis-activity-ui/target/classes/exampleIcon.png new file mode 100644 index 0000000..3ef7be4 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/exampleIcon.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigurationPanel.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigurationPanel.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigurationPanel.class new file mode 100644 index 0000000..4590625 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigurationPanel.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigureAction.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigureAction.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigureAction.class new file mode 100644 index 0000000..72da81a Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/config/GisConfigureAction.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.class new file mode 100644 index 0000000..5d294c4 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/menu/GisConfigureMenuAction.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.class new file mode 100644 index 0000000..3794861 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceDesc.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.class new file mode 100644 index 0000000..b27147a Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceIcon.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.class new file mode 100644 index 0000000..8b23394 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.class new file mode 100644 index 0000000..06b88e8 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/serviceprovider/GisServiceProviderConfig.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.class new file mode 100644 index 0000000..5e6e7d3 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisActivityContextViewFactory.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisContextualView.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisContextualView.class b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisContextualView.class new file mode 100644 index 0000000..033ba91 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/classes/org/apache/taverna/gis/ui/view/GisContextualView.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity-ui/target/test-classes/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.class ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/target/test-classes/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.class b/apache-taverna-plugin-gis-activity-ui/target/test-classes/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.class new file mode 100644 index 0000000..3a8bf16 Binary files /dev/null and b/apache-taverna-plugin-gis-activity-ui/target/test-classes/org/apache/taverna/gis/ui/TavernaWorkbenchWithExamplePlugin.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/.classpath ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/.classpath b/apache-taverna-plugin-gis-activity/.classpath new file mode 100644 index 0000000..698778f --- /dev/null +++ b/apache-taverna-plugin-gis-activity/.classpath @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/.project ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/.project b/apache-taverna-plugin-gis-activity/.project new file mode 100644 index 0000000..3681ef8 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>apache-taverna-plugin-gis-activity</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/.settings/org.eclipse.core.resources.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/.settings/org.eclipse.core.resources.prefs b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/.settings/org.eclipse.jdt.core.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/.settings/org.eclipse.jdt.core.prefs b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ec4300d --- /dev/null +++ b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/.settings/org.eclipse.m2e.core.prefs ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/.settings/org.eclipse.m2e.core.prefs b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/apache-taverna-plugin-gis-activity/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/pom.xml ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/pom.xml b/apache-taverna-plugin-gis-activity/pom.xml new file mode 100644 index 0000000..bae1259 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/pom.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.taverna.gis</groupId> + <artifactId>apache-taverna-plugin-gis</artifactId> + <version>0.0.1-incubating-SNAPSHOT</version> + </parent> + <artifactId>apache-taverna-plugin-gis-activity</artifactId> + <name>Gis Taverna activity</name> + + <repositories> + <repository> + <id>n52-releases</id> + <name>52n Releases</name> + <url>http://52north.org/maven/repo/releases</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>net.sf.taverna.t2.core</groupId> + <artifactId>workflowmodel-api</artifactId> + <version>${t2.core.version}</version> + </dependency> + <dependency> + <groupId>net.sf.taverna.t2.activities</groupId> + <artifactId>activity-test-utils</artifactId> + <version>${t2.activities.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.n52.wps</groupId> + <artifactId>52n-wps-client-lib</artifactId> + <version>3.3.1</version> + </dependency> + </dependencies> +</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java new file mode 100644 index 0000000..fc69c28 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java @@ -0,0 +1,248 @@ +package org.apache.taverna.gis; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.geotools.ows.ServiceException; +import org.n52.wps.client.ExecuteRequestBuilder; +import org.n52.wps.client.ExecuteResponseAnalyser; +import org.n52.wps.client.WPSClientException; +import org.n52.wps.client.WPSClientSession; +import org.n52.wps.io.data.IData; +import org.n52.wps.io.data.binding.complex.GTVectorDataBinding; + +import net.opengis.wps.x100.DataType; +import net.opengis.wps.x100.ExecuteDocument; +import net.opengis.wps.x100.ExecuteResponseDocument; +import net.opengis.wps.x100.OutputDataType; +import net.opengis.wps.x100.ProcessDescriptionType; +import net.sf.taverna.t2.invocation.InvocationContext; +import net.sf.taverna.t2.reference.ReferenceService; +import net.sf.taverna.t2.reference.T2Reference; +import net.sf.taverna.t2.workflowmodel.processor.activity.AbstractAsynchronousActivity; +import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException; +import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivity; +import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean; + +public class GisActivity extends AbstractAsynchronousActivity<GisActivityConfigurationBean> + implements AsynchronousActivity<GisActivityConfigurationBean> { + + /* + * Best practice: Keep port names as constants to avoid misspelling. This + * would not apply if port names are looked up dynamically from the service + * operation, like done for WSDL services. + */ + + private GisActivityConfigurationBean configBean; + + @Override + public void configure(GisActivityConfigurationBean configBean) throws ActivityConfigurationException { + + // TODO: Should I call HealthChecker here?? + // Any pre-config sanity checks + if (configBean.getOgcServiceUri().equals("")) { + throw new ActivityConfigurationException("Geospatial web service URI can't be empty"); + } + // Store for getConfiguration(), but you could also make + // getConfiguration() return a new bean from other sources + this.configBean = configBean; + + // OPTIONAL: + // Do any server-side lookups and configuration, like resolving WSDLs + + // myClient = new MyClient(configBean.getExampleUri()); + // this.service = myClient.getService(configBean.getExampleString()); + + // REQUIRED: (Re)create input/output ports depending on configuration + configurePorts(); + } + + protected void configurePorts() { + // In case we are being reconfigured - remove existing ports first + // to avoid duplicates + removeInputs(); + removeOutputs(); + + // FIXME: Replace with your input and output port definitions + + for(ActivityInputPortDefinitionBean inputPort : configBean.getInputPortDefinitions()) + { + addInput(inputPort.getName(),inputPort.getDepth(),inputPort.getAllowsLiteralValues(),inputPort.getHandledReferenceSchemes(), inputPort.getTranslatedElementType()); + } + +// // Hard coded input port, expecting a single String +// addInput(IN_FIRSTNAME, 0, true, null, String.class); + + // + // // Optional ports depending on configuration + // if (configBean.getExampleString().equals("specialCase")) { + // // depth 1, ie. list of binary byte[] arrays + // addInput(IN_EXTRA_DATA, 1, true, null, byte[].class); + // addOutput(OUT_REPORT, 0); + // } + + for(ActivityOutputPortDefinitionBean outputPort : configBean.getOutputPortDefinitions()) + { + addOutput(outputPort.getName(),outputPort.getDepth()); + } + +// // Single value output port (depth 0) +// addOutput(OUT_FULLNAME, 0); +// // // Output port with list of values (depth 1) +// // addOutput(OUT_MORE_OUTPUTS, 1); + + } + + @SuppressWarnings("unchecked") + @Override + public void executeAsynch(final Map<String, T2Reference> inputs, final AsynchronousActivityCallback callback) { + // Don't execute service directly now, request to be run ask to be run + // from thread pool and return asynchronously + callback.requestRun(new Runnable() { + + public void run() { + InvocationContext context = callback.getContext(); + ReferenceService referenceService = context.getReferenceService(); +// // Resolve inputs +// String firstNameInput = (String) referenceService.renderIdentifier(inputs.get(IN_FIRSTNAME), String.class, context); +// String lastNameInput = (String) referenceService.renderIdentifier(inputs.get(IN_LASTNAME), String.class, context); + + // // Support our configuration-dependendent input + // boolean optionalPorts = + // configBean.getExampleString().equals("specialCase"); + // + // List<byte[]> special = null; + // // We'll also allow IN_EXTRA_DATA to be optionally not + // provided + // if (optionalPorts && inputs.containsKey(IN_EXTRA_DATA)) { + // // Resolve as a list of byte[] + // special = (List<byte[]>) referenceService.renderIdentifier( + // inputs.get(IN_EXTRA_DATA), byte[].class, context); + // } + + // TODO: Do the actual service invocation + // try { + // results = this.service.invoke(firstInput, special) + // } catch (ServiceException ex) { + // callback.fail("Could not invoke Gis service " + + // configBean.getExampleUri(), + // ex); + // // Make sure we don't call callback.receiveResult later + // return; + // } + +// String wpsURL = "http://localhost:8080/geoserver/ows"; +// +// String processID = "gs:StringConcatWPS"; + + // Register outputs + Map<String, T2Reference> outputs = null; + + try { + + WPSClientSession wpsClient = WPSClientSession.getInstance(); + + ProcessDescriptionType processDescription = wpsClient.getProcessDescription(configBean.getOgcServiceUri().toString(), configBean.getProcessIdentifier()); + // configBean.getWpsUri().toString(), + // configBean.getProcessBrief().getIdentifier().getStringValue()); + + ExecuteRequestBuilder executeBuilder = new ExecuteRequestBuilder(processDescription); + + for (ActivityInputPortDefinitionBean activityInputPort : configBean.getInputPortDefinitions()) { + String portValue = (String) referenceService.renderIdentifier(inputs.get(activityInputPort.getName()), String.class, context); + executeBuilder.addLiteralData(activityInputPort.getName(), portValue); + } + +// executeBuilder.addLiteralData(IN_FIRSTNAME, (String) firstNameInput); +// executeBuilder.addLiteralData(IN_LASTNAME, (String) lastNameInput); + + // execute request + ExecuteDocument execute = executeBuilder.getExecute(); + // wpsClient.retrieveExecuteResponseViaPOST(configBean.getWpsUri().toString(), + // execute, false); + execute.getExecute().setService("WPS"); + Object responseObject = null; + try { + responseObject = wpsClient.execute(configBean.getOgcServiceUri().toString(), execute); + } catch (WPSClientException e) { + // if the an error return from service + callback.fail(e.getServerException().xmlText()); + } + + // Register outputs + outputs = new HashMap<String, T2Reference>(); + T2Reference simpleRef = null; + + if (responseObject instanceof ExecuteResponseDocument) { + ExecuteResponseDocument response = (ExecuteResponseDocument) responseObject; + ExecuteResponseAnalyser analyser = new ExecuteResponseAnalyser( + execute, response, processDescription); + + for(OutputDataType output : response.getExecuteResponse().getProcessOutputs().getOutputArray()) + { + + DataType data = output.getData(); + + if (data.isSetLiteralData()) + { + simpleRef = referenceService.register(data.getLiteralData().getStringValue(), 0, true, context); + + outputs.put(output.getIdentifier().getStringValue(), simpleRef); + } + + } + + } + + + } catch (WPSClientException e) { + callback.fail(e.getMessage()); +// } catch (ServiceException e) { +// callback.fail(e.getMessage()); + } catch (IOException e) { + callback.fail(e.getMessage()); + } + +// // Register outputs +// Map<String, T2Reference> outputs = new HashMap<String, T2Reference>(); +// String simpleValue = "simple"; +// T2Reference simpleRef = referenceService.register(simpleValue, 0, true, context); +// outputs.put(OUT_SIMPLE_OUTPUT, simpleRef); + + // // For list outputs, only need to register the top level list + // List<String> moreValues = new ArrayList<String>(); + // moreValues.add("Value 1"); + // moreValues.add("Value 2"); + // T2Reference moreRef = referenceService.register(moreValues, + // 1, true, context); + // outputs.put(OUT_MORE_OUTPUTS, moreRef); + // + // if (optionalPorts) { + // // Populate our optional output port + // // NOTE: Need to return output values for all defined output + // ports + // String report = "Everything OK"; + // outputs.put(OUT_REPORT, referenceService.register(report, + // 0, true, context)); + // } + + // return map of output data, with empty index array as this is + // the only and final result (this index parameter is used if + // pipelining output) + callback.receiveResult(outputs, new int[0]); + } + }); + } + + @Override + public GisActivityConfigurationBean getConfiguration() { + return this.configBean; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityConfigurationBean.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityConfigurationBean.java b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityConfigurationBean.java new file mode 100644 index 0000000..24e3001 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityConfigurationBean.java @@ -0,0 +1,52 @@ +package org.apache.taverna.gis; + +import java.io.Serializable; +import java.net.URI; +import java.util.List; + +import net.opengis.wps.x100.InputDescriptionType; +import net.opengis.wps.x100.OutputDescriptionType; +import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityPortsDefinitionBean; + +/** + * Gis activity configuration bean. + * + */ +public class GisActivityConfigurationBean extends ActivityPortsDefinitionBean implements Serializable { + + /* + * TODO: Remove this comment. + * + * The configuration specifies the variable options and configurations for + * an activity that has been added to a workflow. For instance for a WSDL + * activity, the configuration contains the URL for the WSDL together with + * the method name. String constant configurations contain the string that + * is to be returned, while Beanshell script configurations contain both the + * scripts and the input/output ports (by subclassing + * ActivityPortsDefinitionBean). + * + * Configuration beans are serialised as XML (currently by using XMLBeans) + * when Taverna is saving the workflow definitions. Therefore the + * configuration beans need to follow the JavaBeans style and only have + * fields of 'simple' types such as Strings, integers, etc. Other beans can + * be referenced as well, as long as they are part of the same plugin. + */ + + // TODO: Remove the example fields and getters/setters and add your own + private URI ogcServiceUri; + private String processIdentifier; + + public URI getOgcServiceUri() { + return ogcServiceUri; + } + public void setOgcServiceUri(URI ogcServiceUri) { + this.ogcServiceUri = ogcServiceUri; + } + public String getProcessIdentifier() { + return processIdentifier; + } + public void setProcessIdentifier(String processIdentifier) { + this.processIdentifier = processIdentifier; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityHealthChecker.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityHealthChecker.java b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityHealthChecker.java new file mode 100644 index 0000000..86e78f8 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivityHealthChecker.java @@ -0,0 +1,61 @@ +package org.apache.taverna.gis; + +import java.util.ArrayList; +import java.util.List; + +import net.sf.taverna.t2.visit.VisitReport; +import net.sf.taverna.t2.visit.VisitReport.Status; +import net.sf.taverna.t2.workflowmodel.health.HealthCheck; +import net.sf.taverna.t2.workflowmodel.health.HealthChecker; + +/** + * Gis health checker + * + */ +public class GisActivityHealthChecker implements + HealthChecker<GisActivity> { + + public boolean canVisit(Object o) { + // Return True if we can visit the object. We could do + // deeper (but not time consuming) checks here, for instance + // if the health checker only deals with GisActivity where + // a certain configuration option is enabled. + return o instanceof GisActivity; + } + + public boolean isTimeConsuming() { + // Return true if the health checker does a network lookup + // or similar time consuming checks, in which case + // it would only be performed when using File->Validate workflow + // or File->Run. + return false; + } + + public VisitReport visit(GisActivity activity, List<Object> ancestry) { + GisActivityConfigurationBean config = activity.getConfiguration(); + + // We'll build a list of subreports + List<VisitReport> subReports = new ArrayList<VisitReport>(); + + if (!config.getOgcServiceUri().isAbsolute()) { + // Report Severe problems we know won't work + VisitReport report = new VisitReport(HealthCheck.getInstance(), + activity, "Example URI must be absolute", HealthCheck.INVALID_URL, + Status.SEVERE); + subReports.add(report); + } + + if (config.getProcessIdentifier().equals("")) { + // Warning on possible problems + subReports.add(new VisitReport(HealthCheck.getInstance(), activity, + "Example string empty", HealthCheck.NO_CONFIGURATION, + Status.WARNING)); + } + + // The default explanation here will be used if the subreports list is + // empty + return new VisitReport(HealthCheck.getInstance(), activity, + "Gis service OK", HealthCheck.NO_PROBLEM, subReports); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/7e06e81f/apache-taverna-plugin-gis-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker b/apache-taverna-plugin-gis-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker new file mode 100644 index 0000000..158ab09 --- /dev/null +++ b/apache-taverna-plugin-gis-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker @@ -0,0 +1 @@ +org.apache.taverna.gis.GisActivityHealthChecker
