You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2016/06/27 14:47:19 UTC
incubator-taverna-workbench git commit: Update myExperiment for
Taverna 3 style
Repository: incubator-taverna-workbench
Updated Branches:
refs/heads/master f229d5ea8 -> 67d42d302
Update myExperiment for Taverna 3 style
... but I think the spring config might be incomplete. This
code needs a good clean-up as it has horrible things like
multiple places that construct a shared static
field for the MainComponent JPanel
just to be able to access some of its internals.
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/67d42d30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/67d42d30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/67d42d30
Branch: refs/heads/master
Commit: 67d42d302c67e771e25aaecec9946846af715469
Parents: f229d5e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Jun 27 15:45:42 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Jun 27 15:45:42 2016 +0100
----------------------------------------------------------------------
.../myexperiment/MainComponent.java | 88 +++++++++++---------
.../myexperiment/MainComponentFactory.java | 32 ++++++-
.../myexperiment/MainComponentShutdownHook.java | 84 -------------------
.../myexperiment/MyExperimentPerspective.java | 22 ++---
.../myexperiment/TestJFrameForLocalLaunch.java | 48 -----------
.../myexperiment/UploadWorkflowDialog.java | 25 +++---
.../myexperiment/model/MyExperimentClient.java | 47 ++++-------
.../model/MyExperimentClientShutdownHook.java | 75 +++++++++++++++++
.../perspectives/myexperiment/model/Util.java | 18 +---
.../config/MyExperimentConfiguration.java | 20 ++---
.../MyExperimentConfigurationUIFactory.java | 39 ++++-----
.../perspective-myexperiment-context-osgi.xml | 14 +++-
.../spring/perspective-myexperiment-context.xml | 18 +++-
13 files changed, 252 insertions(+), 278 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponent.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponent.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponent.java
index 41acdbc..6b8ba1c 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponent.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponent.java
@@ -40,21 +40,25 @@ import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
import org.apache.taverna.lang.ui.ShadedLabel;
-import org.apache.taverna.ui.perspectives.PerspectiveRegistry;
+import org.apache.taverna.scufl2.api.container.WorkflowBundle;
+import org.apache.taverna.ui.menu.MenuManager;
import org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient;
import org.apache.taverna.ui.perspectives.myexperiment.model.Resource;
import org.apache.taverna.ui.perspectives.myexperiment.model.Util;
import org.apache.taverna.ui.perspectives.myexperiment.model.Workflow;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
import org.apache.taverna.workbench.edits.EditManager;
import org.apache.taverna.workbench.file.FileManager;
import org.apache.taverna.workbench.file.FileType;
import org.apache.taverna.workbench.file.exceptions.OpenException;
import org.apache.taverna.workbench.file.importworkflow.gui.ImportWorkflowWizard;
import org.apache.taverna.workbench.icons.WorkbenchIcons;
+import org.apache.taverna.workbench.selection.SelectionManager;
import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI;
import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
-import org.apache.taverna.workflowmodel.Dataflow;
-import org.apache.taverna.workflowmodel.serialization.xml.impl.XMLSerializationConstants;
+import org.apache.taverna.workbench.ui.Workbench;
+
import org.apache.log4j.Logger;
@@ -64,7 +68,8 @@ import org.apache.log4j.Logger;
public final class MainComponent extends JPanel implements UIComponentSPI, ChangeListener {
// myExperiment client, logger and the stylesheet will be made available
// throughout the whole perspective
- private MyExperimentClient myExperimentClient;
+
+
private final Logger logger = Logger.getLogger(MainComponent.class);
private final StyleSheet css;
private final ResourcePreviewFactory previewFactory;
@@ -85,23 +90,26 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
public static Logger LOGGER;
private final EditManager editManager;
private final FileManager fileManager;
-
- public MainComponent(EditManager editManager, FileManager fileManager) {
- super();
+ private final MyExperimentClient myExperimentClient;
+ private final MenuManager menuManager;
+ private final ColourManager colourManager;
+ private final WorkbenchConfiguration workbenchConfiguration;
+ private final SelectionManager selectionManager;
+
+ public MainComponent(EditManager editManager, FileManager fileManager, MyExperimentClient myExperimentClient,
+ MenuManager menuManager, ColourManager colourManager,
+ WorkbenchConfiguration workbenchConfiguration, SelectionManager selectionManager) {
this.editManager = editManager;
this.fileManager = fileManager;
-
- // create and initialise myExperiment client
- try {
- this.myExperimentClient = new MyExperimentClient(logger);
- } catch (Exception e) {
- this.logger.error("Couldn't initialise myExperiment client");
- }
+ this.myExperimentClient = myExperimentClient;
+ this.menuManager = menuManager;
+ this.colourManager = colourManager;
+ this.workbenchConfiguration = workbenchConfiguration;
+ this.selectionManager = selectionManager;
// x, y, z ARE NOT USED ANYWHERE ELSE
// HACK TO BE ABLE TO GET THE REFS FROM TAVERNA'S PREFERENCE PANEL
- // TODO: refactor code for all the other classes to utilise the class
- // vars
+ // FIXME: Avoid all these global class variables!
MainComponent x = this;
MAIN_COMPONENT = x;
@@ -136,22 +144,6 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
// prevent bad layout in them
HTMLEditorKit kit = new StyledHTMLEditorKit(this.css);
- // determine which shutdown operations to use
- if (Util.isRunningInTaverna()) {
- // register the current instance of main component with the
- // myExperiment
- // perspective; this will be used later on when shutdown operation
- // needs
- // to be performed - e.g. this aids ShutdownSPI to find the running
- // instance of the plugin
- for (PerspectiveSPI perspective : PerspectiveRegistry.getInstance().getPerspectives()) {
- if (perspective.getText().equals(MyExperimentPerspective.PERSPECTIVE_NAME)) {
- ((MyExperimentPerspective) perspective).setMainComponent(this);
- break;
- }
- }
- }
-
// Do the rest in a separate thread to avoid hanging the GUI.
// Remember to use SwingUtilities.invokeLater to update the GUI
// directly.
@@ -291,7 +283,7 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
if (oAutoLogin != null && oAutoLogin.equals("true")) {
this.getStatusBar().setStatus(this.getMyStuffTab().getClass().getName(),
"Performing autologin");
- this.myExperimentClient.doLoginFromStoredCredentials();
+ this.myExperimentClient.doLogin();
this.getStatusBar().setStatus(this.getMyStuffTab().getClass().getName(),
"Autologin finished. Fetching user data");
}
@@ -475,7 +467,7 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
FileType fileTypeType = (w.isTaverna1Workflow() ? new ScuflFileType()
: new T2FlowFileType());
- Dataflow openDataflow = fileManager.openDataflow(fileTypeType,
+ WorkflowBundle openDataflow = fileManager.openDataflow(fileTypeType,
workflowDataInputStream);
} catch (Exception e) {
javax.swing.JOptionPane.showMessageDialog(null,
@@ -553,7 +545,10 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
getPreviewBrowser().toBack();
ImportWorkflowWizard importWorkflowDialog = new ImportWorkflowWizard(
- getPreviewBrowser(), editManager, fileManager);
+ getPreviewBrowser(), editManager, fileManager,
+ menuManager, colourManager,
+ workbenchConfiguration, selectionManager
+ );
Workflow w;
try {
@@ -569,7 +564,7 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
ByteArrayInputStream workflowDataInputStream = new ByteArrayInputStream(w.getContent());
FileType fileTypeType = (w.isTaverna1Workflow() ? new MainComponent.ScuflFileType()
: new MainComponent.T2FlowFileType());
- Dataflow toBeImported;
+ WorkflowBundle toBeImported;
try {
toBeImported = fileManager.openDataflowSilently(fileTypeType,
workflowDataInputStream).getDataflow();
@@ -638,8 +633,25 @@ public final class MainComponent extends JPanel implements UIComponentSPI, Chang
@Override
public String getMimeType() {
- // "application/vnd.taverna.t2flow+xml";
- return XMLSerializationConstants.WORKFLOW_DOCUMENT_MIMETYPE;
+ return "application/vnd.taverna.t2flow+xml";
+ }
+ }
+
+ public static class WorkflowBundleFileType extends FileType {
+ @Override
+ public String getDescription() {
+ return "Taverna 3 workflow bundle";
+ }
+
+ @Override
+ public String getExtension() {
+ return "wfbundle";
+ }
+
+ @Override
+ public String getMimeType() {
+ return "application/vnd.taverna.scufl2.workflow-bundle";
}
}
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentFactory.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentFactory.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentFactory.java
index 4fe0027..5110949 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentFactory.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentFactory.java
@@ -26,9 +26,14 @@ package org.apache.taverna.ui.perspectives.myexperiment;
import javax.swing.ImageIcon;
+import org.apache.taverna.ui.menu.MenuManager;
+import org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
import org.apache.taverna.workbench.edits.EditManager;
import org.apache.taverna.workbench.file.FileManager;
import org.apache.taverna.workbench.icons.WorkbenchIcons;
+import org.apache.taverna.workbench.selection.SelectionManager;
import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI;
import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
@@ -36,9 +41,14 @@ public class MainComponentFactory implements UIComponentFactorySPI {
private EditManager editManager;
private FileManager fileManager;
+ private MyExperimentClient myExperimentClient;
+ private MenuManager menuManager;
+ private ColourManager colourManager;
+ private WorkbenchConfiguration workbenchConfiguration;
+ private SelectionManager selectionManager;
public UIComponentSPI getComponent() {
- return new MainComponent(editManager, fileManager);
+ return new MainComponent(editManager, fileManager, myExperimentClient, menuManager, colourManager, workbenchConfiguration, selectionManager);
}
public ImageIcon getIcon() {
@@ -57,4 +67,24 @@ public class MainComponentFactory implements UIComponentFactorySPI {
this.fileManager = fileManager;
}
+ public void setMyExperimentClient(MyExperimentClient myExperimentClient) {
+ this.myExperimentClient = myExperimentClient;
+ }
+
+ public void setMenuManager(MenuManager menuManager) {
+ this.menuManager = menuManager;
+ }
+
+ public void setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+ public void setWorkbenchConfiguration(WorkbenchConfiguration workbenchConfiguration) {
+ this.workbenchConfiguration = workbenchConfiguration;
+ }
+
+ public void setSelectionManager(SelectionManager selectionManager) {
+ this.selectionManager = selectionManager;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentShutdownHook.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentShutdownHook.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentShutdownHook.java
deleted file mode 100644
index 83a4431..0000000
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MainComponentShutdownHook.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their respective
- * authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package org.apache.taverna.ui.perspectives.myexperiment;
-
-import org.apache.taverna.ui.perspectives.PerspectiveRegistry;
-import org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient;
-import org.apache.taverna.workbench.ShutdownSPI;
-import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author Sergejs Aleksejevs, Jiten Bhagat
- */
-
-public class MainComponentShutdownHook implements ShutdownSPI {
- private MainComponent pluginMainComponent;
- private MyExperimentClient myExperimentClient;
- private Logger logger;
-
- public int positionHint() {
- // all custom plugins are suggested to return a value of > 100;
- // this affects when in the termination process will this plugin
- // be shutdown;
- return 100;
- }
-
- public boolean shutdown() {
- // find instance of main component of the running myExperiment perspective
- MainComponent mainComponent = null;
- for (PerspectiveSPI perspective : PerspectiveRegistry.getInstance().getPerspectives()) {
- if (perspective instanceof MyExperimentPerspective) {
- mainComponent = ((MyExperimentPerspective) perspective).getMainComponent();
- break;
- }
- }
-
- // if myExperiment perspective wasn't initialised, no shutdown operations are required / possible
- if (mainComponent != null) {
- this.setLinks(mainComponent, mainComponent.getMyExperimentClient(), mainComponent.getLogger());
- logger.debug("Starting shutdown operations for myExperiment plugin");
-
- try {
- myExperimentClient.storeHistoryAndSettings();
- } catch (Exception e) {
- logger.error("Failed while serializing myExperiment plugin settings:\n"
- + e);
- }
-
- logger.debug("myExperiment plugin shutdown is completed; terminated...");
- }
-
- // "true" means that shutdown operations are complete and Taverna can terminate
- return true;
- }
-
- /**
- * Sets up links of this class with the rest of the plugin.
- */
- public void setLinks(MainComponent component, MyExperimentClient client, Logger logger) {
- this.pluginMainComponent = component;
- this.myExperimentClient = client;
- this.logger = logger;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MyExperimentPerspective.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MyExperimentPerspective.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MyExperimentPerspective.java
index 27202e5..caf93d7 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MyExperimentPerspective.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/MyExperimentPerspective.java
@@ -21,16 +21,14 @@
package org.apache.taverna.ui.perspectives.myexperiment;
-import java.io.InputStream;
import java.net.URL;
import javax.swing.ImageIcon;
+import javax.swing.JComponent;
import org.apache.taverna.ui.perspectives.myexperiment.model.Resource;
import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI;
-import org.jdom.Element;
-
/**
* @author Sergejs Aleksejevs, Jiten Bhagat
*/
@@ -54,10 +52,6 @@ public class MyExperimentPerspective implements PerspectiveSPI {
}
}
- public InputStream getLayoutInputStream() {
- return getClass().getResourceAsStream("myexperiment-perspective.xml");
- }
-
public String getText() {
return PERSPECTIVE_NAME;
}
@@ -78,10 +72,6 @@ public class MyExperimentPerspective implements PerspectiveSPI {
}
- public void update(Element layoutElement) {
- // Not sure what to do here
- }
-
public void setMainComponent(MainComponent component) {
this.perspectiveMainComponent = component;
}
@@ -187,4 +177,14 @@ public class MyExperimentPerspective implements PerspectiveSPI {
return (MyExperimentPerspective.class.getResource(strResourcePath));
}
+ @Override
+ public String getID() {
+ return "myExperiment";
+ }
+
+ @Override
+ public JComponent getPanel() {
+ return getMainComponent();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/TestJFrameForLocalLaunch.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/TestJFrameForLocalLaunch.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/TestJFrameForLocalLaunch.java
deleted file mode 100644
index 294765b..0000000
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/TestJFrameForLocalLaunch.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their respective
- * authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package org.apache.taverna.ui.perspectives.myexperiment;
-
-import java.awt.Dimension;
-import javax.swing.JFrame;
-
-public class TestJFrameForLocalLaunch {
-
- /**
- * This is a simple test class for launching myExperiment perspective
- * from outside Taverna. At some point it will be not usable anymore,
- * when proper integration of myExperiment plugin is made.
- *
- * @author Sergejs Aleksejevs
- */
- public static void main(String[] args)
- {
- JFrame frame = new JFrame("myExperiment Perspective Test");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- frame.setMinimumSize(new Dimension(1000, 700));
- frame.setLocation(300, 150);
- frame.getContentPane().add(new org.apache.taverna.ui.perspectives.myexperiment.MainComponent(null, null));
-
- frame.pack();
- frame.setVisible(true);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/UploadWorkflowDialog.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/UploadWorkflowDialog.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/UploadWorkflowDialog.java
index 022a22e..06cd504 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/UploadWorkflowDialog.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/UploadWorkflowDialog.java
@@ -63,6 +63,7 @@ import javax.swing.SwingUtilities;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
+import org.apache.taverna.scufl2.api.container.WorkflowBundle;
import org.apache.taverna.ui.perspectives.myexperiment.model.License;
import org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient;
import org.apache.taverna.ui.perspectives.myexperiment.model.Resource;
@@ -201,25 +202,25 @@ public class UploadWorkflowDialog extends HelpEnabledDialog implements ActionLis
}
private void createDropdown() {
- List<DataflowSelection> openDataflows = new ArrayList<DataflowSelection>();
+ List<WorkflowBundleSelection> openDataflows = new ArrayList<WorkflowBundleSelection>();
int currentlyOpenedIndex = 0;
boolean foundIndex = false;
- for (Dataflow df : fileManager.getOpenDataflows()) {
+ for (WorkflowBundle df : fileManager.getOpenDataflows()) {
Object source = fileManager.getDataflowSource(df);
String name = "";
boolean getLocalName = source instanceof InputStream;
if (source != null)
- name = (getLocalName ? df.getLocalName() : source.toString());
+ name = (getLocalName ? df.getName() : source.toString());
if (df.equals(fileManager.getCurrentDataflow())) {
name = "<html><body>" + name + " - " + " <i>(current)</i></body></html>";
foundIndex = true;
}
- openDataflows.add(new DataflowSelection(df, name));
+ openDataflows.add(new WorkflowBundleSelection(df, name));
if (!foundIndex)
currentlyOpenedIndex++;
}
@@ -424,8 +425,8 @@ public class UploadWorkflowDialog extends HelpEnabledDialog implements ActionLis
if (rbSelectOpenWorkflow.isSelected()) { // user requested to use a flow
// currently open in t2
- Dataflow dataflowToUpload = ((DataflowSelection) jcbOpenWorkflows.getSelectedItem())
- .getDataflow();
+ WorkflowBundle dataflowToUpload = ((WorkflowBundleSelection) jcbOpenWorkflows.getSelectedItem())
+ .getWorkflowBundle();
SaveWorkflowAsAction saveAction = new SaveWorkflowAsAction(fileManager);
boolean skipPrompt = false;
@@ -823,17 +824,17 @@ public class UploadWorkflowDialog extends HelpEnabledDialog implements ActionLis
// not in use
}
- private class DataflowSelection {
- private final Dataflow dataflow;
+ private class WorkflowBundleSelection {
+ private final WorkflowBundle workflowBundle;
private final String name;
- public DataflowSelection(Dataflow dataflow, String name) {
- this.dataflow = dataflow;
+ public WorkflowBundleSelection(WorkflowBundle df, String name) {
+ this.workflowBundle = df;
this.name = name;
}
- public Dataflow getDataflow() {
- return dataflow;
+ public WorkflowBundle getWorkflowBundle() {
+ return workflowBundle;
}
public String getName() {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClient.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClient.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClient.java
index 1772886..b393de9 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClient.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClient.java
@@ -44,24 +44,22 @@ import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
-import java.util.Set;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
-import net.sf.taverna.raven.appconfig.ApplicationRuntime;
+import org.apache.log4j.Logger;
import org.apache.taverna.security.credentialmanager.CMException;
import org.apache.taverna.security.credentialmanager.CredentialManager;
import org.apache.taverna.security.credentialmanager.UsernamePassword;
import org.apache.taverna.ui.perspectives.myexperiment.MainComponent;
import org.apache.taverna.ui.perspectives.myexperiment.MyExperimentPerspective;
import org.apache.taverna.ui.perspectives.myexperiment.model.SearchEngine.QuerySearchInstance;
-
-import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
+import org.apache.taverna.configuration.app.ApplicationConfiguration;
/**
* @author Sergejs Aleksejevs, Emmanuel Tagarira, Jiten Bhagat
@@ -115,35 +113,24 @@ public class MyExperimentClient {
// file
// the logger
- private Logger logger;
+ private Logger logger = Logger.getLogger(MyExperimentClient.class);
// authentication settings (and the current user)
private boolean LOGGED_IN = false;
private String AUTH_STRING = "";
private User current_user = null;
+private CredentialManager credentialManager;
// default constructor
- public MyExperimentClient() {
- }
-
- public MyExperimentClient(Logger logger) {
- this();
-
- this.logger = logger;
+ public MyExperimentClient(CredentialManager credentialManager, ApplicationConfiguration applicationConfig) {
+
- // === Load INI settings ===
+ this.credentialManager = credentialManager;
+ // === Load INI settings ===
// but loading settings from INI file, determine what folder is to be used
// for INI file
- if (Util.isRunningInTaverna()) {
- // running inside Taverna - use its folder to place the config file
- this.fIniFileDir = new java.io.File(ApplicationRuntime.getInstance()
- .getApplicationHomeDir(), "conf");
- } else {
- // running outside Taverna, place config file into the user's home
- // directory
- this.fIniFileDir = new java.io.File(System.getProperty("user.home"),
- ".Taverna2-myExperiment Plugin");
- }
+ this.fIniFileDir = new java.io.File(applicationConfig
+ .getApplicationHomeDir().toFile(), "conf");
// load preferences if the INI file exists
this.iniSettings = new Properties();
@@ -255,7 +242,7 @@ public class MyExperimentClient {
private UsernamePassword getUserPass(String urlString) {
try {
URI userpassUrl = URI.create(urlString);
- final UsernamePassword userAndPass = CredentialManager.getInstance().getUsernameAndPasswordForService(userpassUrl, true, null);
+ final UsernamePassword userAndPass = credentialManager.getUsernameAndPasswordForService(userpassUrl, true, null);
return userAndPass;
} catch (CMException e) {
throw new RuntimeException("Error in Taverna Credential Manager", e);
@@ -268,7 +255,7 @@ public class MyExperimentClient {
ServerResponse response = null;
Document doc = null;
try {
-// CredentialManager.getInstance().getUsernameAndPasswordForService(new URI(this.BASE_URL), true, null);
+// credentialManager.getUsernameAndPasswordForService(new URI(this.BASE_URL), true, null);
response = this.doMyExperimentGET(this.BASE_URL + "/whoami.xml");
} catch (Exception e) {
this.logger
@@ -279,13 +266,13 @@ public class MyExperimentClient {
if (response.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
try {
- List<String> toDelete = CredentialManager.getInstance().getServiceURLsforAllUsernameAndPasswordPairs();
- for (String uri : toDelete) {
- if (uri.startsWith(BASE_URL)) {
- CredentialManager.getInstance().deleteUsernameAndPasswordForService(uri);
+ List<URI> toDelete = credentialManager.getServiceURIsForAllUsernameAndPasswordPairs();
+ for (URI uri : toDelete) {
+ if (uri.toASCIIString().startsWith(BASE_URL)) {
+ credentialManager.deleteUsernameAndPasswordForService(uri);
}
}
-// CredentialManager.getInstance().resetAuthCache();
+// credentialManager.resetAuthCache();
doc = null;
} catch (Exception e) {
logger.error(e);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClientShutdownHook.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClientShutdownHook.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClientShutdownHook.java
new file mode 100644
index 0000000..695f54f
--- /dev/null
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/MyExperimentClientShutdownHook.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (C) 2009 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their respective
+ * authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.ui.perspectives.myexperiment.model;
+
+import org.apache.log4j.Logger;
+import org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient;
+import org.apache.taverna.workbench.ShutdownSPI;
+
+/**
+ * @author Sergejs Aleksejevs, Jiten Bhagat
+ */
+
+public class MyExperimentClientShutdownHook implements ShutdownSPI {
+
+
+ private MyExperimentClient myExperimentClient;
+ private Logger logger = Logger.getLogger(MyExperimentClientShutdownHook.class);
+
+ public int positionHint() {
+ // all custom plugins are suggested to return a value of > 100;
+ // this affects when in the termination process will this plugin
+ // be shutdown;
+ return 100;
+ }
+
+ public boolean shutdown() {
+ if (myExperimentClient == null) {
+ // no myExperimentClient yet, all done
+ return true;
+ }
+ // find instance of main component of the running myExperiment perspective
+ logger.debug("Starting shutdown operations for myExperiment plugin");
+
+ try {
+ myExperimentClient.storeHistoryAndSettings();
+ } catch (Exception e) {
+ logger.error("Failed while serializing myExperiment plugin settings:\n"
+ + e);
+ }
+
+ logger.debug("myExperiment plugin shutdown is completed; terminated...");
+
+ // "true" means that shutdown operations are complete and Taverna can terminate
+ return true;
+ }
+
+
+ public void setMyExperimentClient(MyExperimentClient myExperimentClient) {
+ this.myExperimentClient = myExperimentClient;
+ }
+
+ public MyExperimentClient getMyExperimentClient() {
+ return myExperimentClient;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/Util.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/Util.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/Util.java
index 3e055a7..811201b 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/Util.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/ui/perspectives/myexperiment/model/Util.java
@@ -50,12 +50,10 @@ import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
-import net.sf.taverna.raven.appconfig.ApplicationRuntime;
+import org.apache.log4j.Logger;
import org.apache.taverna.ui.perspectives.myexperiment.JClickableLabel;
import org.apache.taverna.ui.perspectives.myexperiment.MyExperimentPerspective;
import org.apache.taverna.ui.perspectives.myexperiment.model.SearchEngine.QuerySearchInstance;
-
-import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
@@ -607,18 +605,4 @@ public class Util {
return (strResult);
}
- /**
- * Determines whether the plugin is running as a standalone JFrame or inside
- * Taverna Workbench.
- */
- public static boolean isRunningInTaverna() {
- try {
- // ApplicationRuntime class is defined within Taverna API. If this is available,
- // it should mean that the plugin runs within Taverna.
- ApplicationRuntime.getInstance();
- return true;
- } catch (NoClassDefFoundError e) {
- return false;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfiguration.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfiguration.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfiguration.java
index bdae90f..0d36113 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfiguration.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfiguration.java
@@ -23,21 +23,23 @@ package org.apache.taverna.workbench.myexperiment.config;
import java.util.HashMap;
import java.util.Map;
-import uk.org.taverna.configuration.AbstractConfigurable;
-//import org.apache.log4j.Logger;
-import uk.org.taverna.configuration.Configurable;
+import org.apache.taverna.configuration.AbstractConfigurable;
+import org.apache.taverna.configuration.Configurable;
+import org.apache.taverna.configuration.ConfigurationManager;
+
/**
* @author Emmanuel Tagarira, Alan Williams
*/
public class MyExperimentConfiguration extends AbstractConfigurable {
- private static class Singleton {
- private static MyExperimentConfiguration instance = new MyExperimentConfiguration();
- }
//private static Logger logger = Logger.getLogger(MyExperimentConfiguration.class);
- private Map<String, String> defaultPropertyMap;
+ public MyExperimentConfiguration(ConfigurationManager configurationManager) {
+ super(configurationManager);
+ }
+
+private Map<String, String> defaultPropertyMap;
public String getCategory() {
return "general";
@@ -61,8 +63,4 @@ public class MyExperimentConfiguration extends AbstractConfigurable {
public String getUUID() {
return "d25867g1-6078-22ee-bf27-1911311d0b77";
}
-
- public static Configurable getInstance() {
- return Singleton.instance;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfigurationUIFactory.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfigurationUIFactory.java b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfigurationUIFactory.java
index 683011c..a5a5400 100644
--- a/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfigurationUIFactory.java
+++ b/taverna-perspective-myexperiment/src/main/java/org/apache/taverna/workbench/myexperiment/config/MyExperimentConfigurationUIFactory.java
@@ -22,10 +22,9 @@ package org.apache.taverna.workbench.myexperiment.config;
import javax.swing.JPanel;
-import uk.org.taverna.configuration.Configurable;
-import uk.org.taverna.configuration.ConfigurationUIFactory;
-
-import org.apache.taverna.ui.perspectives.myexperiment.MainComponent;
+import org.apache.taverna.configuration.Configurable;
+import org.apache.taverna.configuration.ConfigurationManager;
+import org.apache.taverna.configuration.ConfigurationUIFactory;
import org.apache.taverna.workbench.edits.EditManager;
import org.apache.taverna.workbench.file.FileManager;
@@ -34,29 +33,25 @@ import org.apache.taverna.workbench.file.FileManager;
*/
public class MyExperimentConfigurationUIFactory implements ConfigurationUIFactory {
- private EditManager editManager;
-private FileManager fileManager;
-
-public boolean canHandle(String uuid) {
- return uuid.equals(getConfigurable().getUUID());
- }
+ private ConfigurationManager configurationManager;
- public JPanel getConfigurationPanel() {
- if (MainComponent.MAIN_COMPONENT == null)
- MainComponent.MAIN_COMPONENT = new MainComponent(editManager, fileManager);
- return new MyExperimentConfigurationPanel();
- }
+ public boolean canHandle(String uuid) {
+ return uuid.equals(getConfigurable().getUUID());
+ }
- public Configurable getConfigurable() {
- return MyExperimentConfiguration.getInstance();
- }
+ public JPanel getConfigurationPanel() {
+ // FIXME: This is insane.. why would we initialize the UI from here?
+ // if (MainComponent.MAIN_COMPONENT == null)
+ // MainComponent.MAIN_COMPONENT = new MainComponent(editManager, fileManager);
+ return new MyExperimentConfigurationPanel();
+ }
- public void setEditManager(EditManager editManager) {
- this.editManager = editManager;
+ public Configurable getConfigurable() {
+ return new MyExperimentConfiguration(configurationManager);
}
- public void setFileManager(FileManager fileManager) {
- this.fileManager = fileManager;
+ public void setConfigurationManager(ConfigurationManager configurationManager) {
+ this.configurationManager = configurationManager;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context-osgi.xml b/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context-osgi.xml
index 5389b4a..bce9e01 100644
--- a/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context-osgi.xml
+++ b/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context-osgi.xml
@@ -28,11 +28,23 @@
<service ref="MainComponentFactory" interface="org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI" />
+ <service ref="MyExperimentConfiguration" interface="org.apache.taverna.configuration.Configurable" />
+
<service ref="MyExperimentPerspective" interface="org.apache.taverna.workbench.ui.zaria.PerspectiveSPI" />
- <service ref="MainComponentShutdownHook" interface="org.apache.taverna.workbench.ShutdownSPI" />
+ <service ref="MyExperimentClientShutdownHook" interface="org.apache.taverna.workbench.ShutdownSPI" />
<reference id="editManager" interface="org.apache.taverna.workbench.edits.EditManager" />
<reference id="fileManager" interface="org.apache.taverna.workbench.file.FileManager" />
+ <reference id="credentialManager" interface="org.apache.taverna.security.credentialmanager.CredentialManager" />
+ <reference id="appConfig" interface="org.apache.taverna.configuration.app.ApplicationConfiguration" />
+ <reference id="menuManager" interface="org.apache.taverna.ui.menu.MenuManager" />
+ <reference id="edits" interface="org.apache.taverna.workflowmodel.Edits" />
+ <reference id="activityIconManager" interface="org.apache.taverna.workbench.activityicons.ActivityIconManager" />
+ <reference id="colourManager" interface="org.apache.taverna.workbench.configuration.colour.ColourManager" />
+ <reference id="serviceDescriptionRegistry" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry" />
+ <reference id="workbenchConfiguration" interface="org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration" />
+ <reference id="selectionManager" interface="org.apache.taverna.workbench.selection.SelectionManager" />
+ <reference id="configurationManager" interface="org.apache.taverna.configuration.ConfigurationManager" />
</beans:beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/67d42d30/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context.xml
----------------------------------------------------------------------
diff --git a/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context.xml b/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context.xml
index b174103..f86cb56 100644
--- a/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context.xml
+++ b/taverna-perspective-myexperiment/src/main/resources/META-INF/spring/perspective-myexperiment-context.xml
@@ -22,17 +22,29 @@
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="MyExperimentConfigurationUIFactory" class="org.apache.taverna.workbench.myexperiment.config.MyExperimentConfigurationUIFactory">
- <property name="editManager" ref="editManager" />
- <property name="fileManager" ref="fileManager" />
+ <property name="configurationManager" ref="configurationManager" />
+ </bean>
+
+ <bean id="MyExperimentClient" class="org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClient">
+ <constructor-arg ref="credentialManager" />
+ <constructor-arg ref="appConfig" />
</bean>
<bean id="MainComponentFactory" class="org.apache.taverna.ui.perspectives.myexperiment.MainComponentFactory">
<property name="editManager" ref="editManager" />
<property name="fileManager" ref="fileManager" />
+ <property name="myExperimentClient" ref="MyExperimentClient" />
+ <property name="menuManager" ref="menuManager" />
+ <property name="colourManager" ref="colourManager" />
+ <property name="workbenchConfiguration" ref="workbenchConfiguration" />
+ <property name="selectionManager" ref="selectionManager" />
</bean>
<bean id="MyExperimentPerspective" class="org.apache.taverna.ui.perspectives.myexperiment.MyExperimentPerspective" />
- <bean id="MainComponentShutdownHook" class="org.apache.taverna.ui.perspectives.myexperiment.MainComponentShutdownHook" />
+ <bean id="MyExperimentClientShutdownHook" class="org.apache.taverna.ui.perspectives.myexperiment.model.MyExperimentClientShutdownHook">
+ <property name="myexperimentClient" ref="MyExperimentClient" />
+ </bean>
+
</beans>