http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/InvocationPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/InvocationPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/InvocationPanel.java new file mode 100644 index 0000000..217d2e3 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/InvocationPanel.java @@ -0,0 +1,394 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Arrays; +import java.util.Comparator; + +import javax.swing.AbstractAction; +import javax.swing.ButtonGroup; +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListCellRenderer; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.border.EmptyBorder; + +import org.apache.taverna.activities.externaltool.ExternalToolActivityConfigurationBean; +import org.apache.taverna.activities.externaltool.ExternalToolActivityHealthChecker; +import org.apache.taverna.activities.externaltool.configuration.ToolInvocationConfiguration; +import org.apache.taverna.activities.externaltool.manager.InvocationGroup; +import org.apache.taverna.activities.externaltool.manager.InvocationGroupAddedEvent; +import org.apache.taverna.activities.externaltool.manager.InvocationGroupRemovedEvent; +import org.apache.taverna.activities.externaltool.manager.InvocationManagerEvent; +import org.apache.taverna.activities.externaltool.manager.InvocationMechanism; +import org.apache.taverna.activities.externaltool.manager.InvocationMechanismAddedEvent; +import org.apache.taverna.activities.externaltool.manager.InvocationMechanismRemovedEvent; +import org.apache.taverna.activities.externaltool.manager.ToolInvocationConfigurationPanel; +import net.sf.taverna.t2.activities.externaltool.manager.impl.InvocationGroupManagerImpl; +import org.apache.taverna.lang.observer.Observable; +import org.apache.taverna.lang.observer.Observer; +import org.apache.taverna.lang.ui.DeselectingButton; +import net.sf.taverna.t2.workbench.ui.impl.configuration.ui.T2ConfigurationFrame; + +import org.apache.log4j.Logger; + +/** + * @author alanrw + * + */ +public class InvocationPanel extends JPanel implements Observer<InvocationManagerEvent> { + + private static final String LOCATION_DESCRIPTION = ToolInvocationConfigurationPanel.HEADER_TEXT; + private final JComboBox mechanismSelection; + private final JComboBox groupSelection; + + private DefaultComboBoxModel mechanismSelectionModel = new DefaultComboBoxModel(); + private DefaultComboBoxModel groupSelectionModel = new DefaultComboBoxModel(); + + private static InvocationGroupManagerImpl manager = InvocationGroupManagerImpl.getInstance(); + + private static Logger logger = Logger + .getLogger(InvocationPanel.class); + + private JRadioButton unmanagedLocation; + private JRadioButton groupSelected; + private JRadioButton mechanismSelected; + private JButton manageInvocation; + private ButtonGroup mechanismOrGroup; + private ExternalToolActivityConfigurationBean configuration; + + private ActionListener radioChangeListener; + + boolean unmanagedShown = false; + + public InvocationPanel(ExternalToolActivityConfigurationBean configuration) { + super(); + manager.addObserver(this); + + mechanismSelection = new JComboBox(); + populateMechanismList(); + mechanismSelection.setModel(mechanismSelectionModel); + + groupSelection = new JComboBox(); + populateGroupList(); + groupSelection.setModel(groupSelectionModel); + populateInvocationPanel(configuration); + + radioChangeListener = new AbstractAction() { + + @Override + public void actionPerformed(ActionEvent e) { + if (unmanagedShown && unmanagedLocation.isSelected()) { + setUnmanagedLocationSelectability(true); + setMechanismSelectability(false); + setGroupSelectability(false); + return; + } + if (mechanismSelected.isSelected()) { + if (unmanagedShown) { + setUnmanagedLocationSelectability(false); + } + setMechanismSelectability(true); + setGroupSelectability(false); + return; + } + if (unmanagedShown) { + setUnmanagedLocationSelectability(false); + } + setMechanismSelectability(false); + setGroupSelectability(true); + return; } + + }; + if (unmanagedShown) { + unmanagedLocation.addActionListener(radioChangeListener); + } + groupSelected.addActionListener(radioChangeListener); + mechanismSelected.addActionListener(radioChangeListener); + } + + private void populateMechanismList() { + InvocationMechanism currentSelection = (InvocationMechanism) mechanismSelection.getSelectedItem(); + InvocationMechanism[] mechanisms = InvocationGroupManagerImpl.getInstance() + .getMechanisms().toArray(new InvocationMechanism[] {}); + Arrays.sort(mechanisms, new Comparator<InvocationMechanism>() { + + @Override + public int compare(InvocationMechanism arg0, InvocationMechanism arg1) { + return arg0.getName().compareTo( + arg1.getName()); + } + }); + mechanismSelectionModel.removeAllElements(); + for (InvocationMechanism mechanism : mechanisms) { + mechanismSelectionModel.addElement(mechanism); + logger.info("Added mechanism " + mechanism.hashCode()); + } + if (currentSelection != null) { + mechanismSelection.setSelectedItem(currentSelection); + } + + } + + private void populateGroupList() { + InvocationGroup currentSelection = (InvocationGroup) groupSelection.getSelectedItem(); + InvocationGroup[] groups = InvocationGroupManagerImpl.getInstance() + .getInvocationGroups().toArray(new InvocationGroup[] {}); + Arrays.sort(groups, new Comparator<InvocationGroup>() { + + @Override + public int compare(InvocationGroup arg0, InvocationGroup arg1) { + return arg0.getName().compareTo( + arg1.getName()); + } + }); + groupSelectionModel.removeAllElements(); + for (InvocationGroup group : groups) { + groupSelectionModel.addElement(group); + logger.info("Added group " + group.hashCode()); + } + if (currentSelection != null) { + groupSelection.setSelectedItem(currentSelection); + } + + } + + + private void populateInvocationPanel(ExternalToolActivityConfigurationBean configuration) { + this.configuration = configuration; + this.removeAll(); + this.setLayout(new BorderLayout()); + + JTextArea descriptionText = new JTextArea( + LOCATION_DESCRIPTION); + descriptionText.setEditable(false); + descriptionText.setFocusable(false); + descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); + descriptionText.setLineWrap(true); + descriptionText.setWrapStyleWord(true); + descriptionText.setRows(3); + this.add(descriptionText, BorderLayout.NORTH); + + JPanel innerPanel = new JPanel(new BorderLayout()); + + mechanismOrGroup = new ButtonGroup(); + + JPanel subPanel = new JPanel(new GridLayout(4,1)); + + if (isUnmanaged(configuration)) { + createUnmanagedLocation(subPanel); + unmanagedShown = true; + } + + subPanel.add(createMechanismPanel()); + + subPanel.add(createGroupPanel()); + + subPanel.add(createButtonPanel()); + + innerPanel.add(subPanel, BorderLayout.NORTH); + innerPanel.add(new JPanel(), BorderLayout.CENTER); + + initializeSelectability(); + this.add(innerPanel, BorderLayout.CENTER); + this.repaint(); + } + + private boolean isUnmanaged( + ExternalToolActivityConfigurationBean configuration2) { + return (!ExternalToolActivityHealthChecker.updateLocation(configuration2)); + } + + private void initializeSelectability() { + if (isUnmanaged(configuration)) { + unmanagedLocation.setSelected(true); + setUnmanagedLocationSelectability(true); + setMechanismSelectability(false); + setGroupSelectability(false); + return; + } + if (configuration.getInvocationGroup() == null) { + mechanismSelected.setSelected(true); + if (unmanagedShown) { + setUnmanagedLocationSelectability(false); + } + setMechanismSelectability(true); + setGroupSelectability(false); + return; + } + groupSelected.setSelected(true); + if (unmanagedShown) { + setUnmanagedLocationSelectability(false); + } + setMechanismSelectability(false); + setGroupSelectability(true); + return; + } + + private void setGroupSelectability(boolean b) { + groupSelection.setEnabled(b); + } + + private void setMechanismSelectability(boolean b) { + mechanismSelection.setEnabled(b); + } + + private void setUnmanagedLocationSelectability(boolean b) { + // Nothing to do + } + + private JPanel createGroupPanel() { + JPanel groupPanel = new JPanel(new BorderLayout()); + + JPanel groupSelectionPanel = new JPanel(new GridLayout(1, 2)); + groupSelected = new JRadioButton("Select a symbolic location"); + mechanismOrGroup.add(groupSelected); + groupSelected.setBorder(new EmptyBorder(10, 10, 10, 10)); + groupSelectionPanel.add(groupSelected); + + groupSelection.setRenderer(new DefaultListCellRenderer() { + + @Override + public Component getListCellRendererComponent(JList arg0, + Object arg1, int arg2, boolean arg3, boolean arg4) { + if (arg1 instanceof InvocationGroup) { + return super.getListCellRendererComponent(arg0, + ((InvocationGroup) arg1).getName(), + arg2, arg3, arg4); + } + return super.getListCellRendererComponent(arg0, arg1, arg2, + arg3, arg4); + } + }); + + groupSelectionPanel.add(groupSelection); + + groupPanel.add(groupSelectionPanel, BorderLayout.CENTER); + + if (configuration.getInvocationGroup() != null) { + groupSelection.setSelectedItem(configuration.getInvocationGroup()); + } else { + groupSelection.setSelectedItem(manager.getDefaultGroup()); + } + + return groupPanel; + } + + private JPanel createMechanismPanel() { + JPanel mechanismPanel = new JPanel(new BorderLayout()); + JPanel mechanismSelectionPanel = new JPanel(new GridLayout(1, 3)); + mechanismSelected = new JRadioButton("Select an explicit location"); + mechanismOrGroup.add(mechanismSelected); + mechanismSelected.setBorder(new EmptyBorder(10, 10, 10, 10)); + mechanismSelectionPanel.add(mechanismSelected); + + mechanismSelection.setRenderer(new DefaultListCellRenderer() { + + @Override + public Component getListCellRendererComponent(JList arg0, + Object arg1, int arg2, boolean arg3, boolean arg4) { + if (arg1 instanceof InvocationMechanism) { + return super.getListCellRendererComponent(arg0, + ((InvocationMechanism) arg1).getName(), + arg2, arg3, arg4); + } + return super.getListCellRendererComponent(arg0, arg1, arg2, + arg3, arg4); + } + }); + + mechanismSelectionPanel.add(mechanismSelection); + + mechanismPanel.add(mechanismSelectionPanel, BorderLayout.CENTER); + if (configuration.getMechanism() != null) { + mechanismSelection.setSelectedItem(configuration.getMechanism()); + } else { + mechanismSelection.setSelectedItem(manager.getDefaultMechanism()); + } + return mechanismPanel; + + } + + private JPanel createButtonPanel() { + JPanel buttonPanel = new JPanel(new FlowLayout()); + manageInvocation = new DeselectingButton("Manage locations", + new AbstractAction() { + + @Override + public void actionPerformed(ActionEvent e) { + T2ConfigurationFrame.showConfiguration(ToolInvocationConfiguration.getInstance().getDisplayName()); + }}); + buttonPanel.add(manageInvocation); + return buttonPanel; + } + + private void createUnmanagedLocation(JPanel subPanel) { + unmanagedLocation = new JRadioButton("Continue using unmanaged location"); + subPanel.add(unmanagedLocation); + mechanismOrGroup.add(unmanagedLocation); + } + + private void handleInvocationManagerMessage(InvocationManagerEvent message) { + if (message instanceof InvocationMechanismRemovedEvent) { + InvocationMechanism removedMechanism = ((InvocationMechanismRemovedEvent) message).getRemovedMechanism(); + InvocationMechanism replacementMechanism = ((InvocationMechanismRemovedEvent) message).getReplacementMechanism(); + if (mechanismSelection.getSelectedItem().equals(removedMechanism)) { + mechanismSelection.setSelectedItem(replacementMechanism); + } + mechanismSelectionModel.removeElement(removedMechanism); + } else if (message instanceof InvocationMechanismAddedEvent) { + populateMechanismList(); + } + else if (message instanceof InvocationGroupRemovedEvent) { + InvocationGroup removedGroup = ((InvocationGroupRemovedEvent) message).getRemovedGroup(); + InvocationGroup replacementGroup = ((InvocationGroupRemovedEvent) message).getReplacementGroup(); + if (groupSelection.getSelectedItem().equals(removedGroup)) { + groupSelection.setSelectedItem(replacementGroup); + } + groupSelectionModel.removeElement(removedGroup); + } else if (message instanceof InvocationGroupAddedEvent) { + populateGroupList(); + } + } + + @Override + public void notify(Observable<InvocationManagerEvent> sender, + final InvocationManagerEvent message) throws Exception { + if (SwingUtilities.isEventDispatchThread()) { + handleInvocationManagerMessage(message); + } else { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + handleInvocationManagerMessage(message); + } + }); + } } + + public void fillInConfiguration( + ExternalToolActivityConfigurationBean newConfiguration) { + if (unmanagedShown && unmanagedLocation.isSelected()) { + return; + } + if (mechanismSelected.isSelected()) { + newConfiguration.setMechanism((InvocationMechanism) mechanismSelection.getSelectedItem()); + return; + } + newConfiguration.setInvocationGroup((InvocationGroup) groupSelection.getSelectedItem()); + } + + public void stopObserving() { + manager.removeObserver(this); + } +}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/LoadDescriptionAction.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/LoadDescriptionAction.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/LoadDescriptionAction.java new file mode 100644 index 0000000..ca5efa8 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/LoadDescriptionAction.java @@ -0,0 +1,89 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.event.ActionEvent; +import java.io.IOException; +import java.io.StringBufferInputStream; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.swing.AbstractAction; +import javax.swing.JOptionPane; + +import org.apache.taverna.lang.ui.FileTools; + +import org.jdom.Document; +import org.jdom.JDOMException; + +import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription; +import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration; + +final class LoadDescriptionAction extends AbstractAction { + /** + * + */ + private final ScriptPanel scriptPanel; + private final ExternalToolConfigView view; + + LoadDescriptionAction(ScriptPanel scriptPanel, ExternalToolConfigView view) { + this.scriptPanel = scriptPanel; + this.view = view; + } + + public void actionPerformed(ActionEvent e) { + String descriptionsString = FileTools.readStringFromFile( + this.scriptPanel, "Load tool description", + ".xml"); + if (descriptionsString != null) { + String errorMessage = null; + try { + Document doc = ScriptPanel.builder + .build(new StringReader(descriptionsString)); + List<UseCaseDescription> descriptions = UseCaseEnumeration.readDescriptionsFromStream(new StringBufferInputStream(descriptionsString)); + if (descriptions.isEmpty()) { + JOptionPane.showMessageDialog(this.scriptPanel, "No tool descriptions found", "File content", JOptionPane.ERROR_MESSAGE); + return; + } + + if (descriptions.size() == 1) { + view.getConfiguration().setUseCaseDescription(descriptions.get(0)); + view.refreshConfiguration(view.getConfiguration()); + return; + } + + List<String> descriptionNames = new ArrayList(); + for (UseCaseDescription ud : descriptions) { + descriptionNames.add(ud.getUsecaseid()); + } + Collections.sort(descriptionNames); + String chosenName = (String) JOptionPane.showInputDialog(this.scriptPanel, "Please select a tool description", + "Select tool description", JOptionPane.PLAIN_MESSAGE, null, descriptionNames.toArray(), descriptionNames.get(0)); + if (chosenName != null) { + for (UseCaseDescription ud : descriptions) { + if (ud.getUsecaseid().equals(chosenName)) { + view.getConfiguration().setUseCaseDescription(ud); + view.refreshConfiguration(view.getConfiguration()); + return; + + } + } + } + } catch (JDOMException e1) { + errorMessage = e1.getMessage(); + } catch (IOException e1) { + errorMessage = e1.getMessage(); + } catch (Exception e1) { + errorMessage = e1.getMessage(); + } + if (errorMessage != null) { + JOptionPane.showMessageDialog(null, errorMessage, + "Tool description load error", + JOptionPane.ERROR_MESSAGE); + } + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/SaveDescriptionAction.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/SaveDescriptionAction.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/SaveDescriptionAction.java new file mode 100644 index 0000000..977b228 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/SaveDescriptionAction.java @@ -0,0 +1,124 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.prefs.Preferences; + +import javax.swing.AbstractAction; +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; + +import org.apache.taverna.lang.ui.ExtensionFileFilter; +import org.apache.taverna.lang.ui.FileTools; + +import org.apache.log4j.Logger; +import org.jdom.Element; +import org.jdom.output.Format; +import org.jdom.output.XMLOutputter; + +import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription; +import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration; + +final class SaveDescriptionAction extends AbstractAction { + /** + * + */ + private final ScriptPanel scriptPanel; + private final ExternalToolConfigView view; + + private static Logger logger = Logger.getLogger(SaveDescriptionAction.class); + + private static XMLOutputter outputter = new XMLOutputter(Format + .getPrettyFormat()); + + SaveDescriptionAction(ScriptPanel scriptPanel, ExternalToolConfigView view) { + this.scriptPanel = scriptPanel; + this.view = view; + } + + public void actionPerformed(ActionEvent e) { + UseCaseDescription currentDescription = view.makeConfiguration().getUseCaseDescription(); + String usecaseid = currentDescription.getUsecaseid(); + String description = currentDescription.getDescription(); + String group = currentDescription.getGroup(); + if ((usecaseid == null) || usecaseid.isEmpty() || (description == null) || description.isEmpty() || (group == null) || group.isEmpty()) { + JOptionPane.showMessageDialog(view, "Please fill in the tool annotation and\nthen re-export the description", "Missing annotation", JOptionPane.PLAIN_MESSAGE, null); + view.showAnnotationPanel(); + } else { + saveStringToFile(this.scriptPanel, + "Save tool description", ".xml", currentDescription); + } + } + + public static boolean saveStringToFile(Component parent, String dialogTitle, String extension, UseCaseDescription description) { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setDialogTitle(dialogTitle); + + fileChooser.resetChoosableFileFilters(); + fileChooser.setAcceptAllFileFilterUsed(true); + + fileChooser.setFileFilter(new ExtensionFileFilter(new String[] { extension })); + + Preferences prefs = Preferences.userNodeForPackage(FileTools.class); + String curDir = prefs + .get("currentDir", System.getProperty("user.home")); + fileChooser.setCurrentDirectory(new File(curDir)); + + boolean tryAgain = true; + while (tryAgain) { + tryAgain = false; + int returnVal = fileChooser.showSaveDialog(parent); + if (returnVal == JFileChooser.APPROVE_OPTION) { + prefs.put("currentDir", fileChooser.getCurrentDirectory() + .toString()); + File file = fileChooser.getSelectedFile(); + if (!file.getName().contains(".")) { + String newName = file.getName() + extension; + file = new File(file.getParentFile(), newName); + } + + // TODO: Open in separate thread to avoid hanging UI + try { + List<UseCaseDescription> currentDescriptions; + if (file.exists()) { + currentDescriptions = UseCaseEnumeration.readDescriptionsFromStream(new FileInputStream(file)); + } else { + currentDescriptions = new ArrayList<UseCaseDescription>(); + } + Element overallElement = new Element("usecases"); + for (UseCaseDescription ud : currentDescriptions) { + if (!ud.getUsecaseid().equals(description.getUsecaseid())) { + overallElement.addContent(ud.writeToXMLElement()); + } + } + + overallElement.addContent(description.writeToXMLElement()); + BufferedWriter out = new BufferedWriter(new FileWriter(file)); + out.write(outputter.outputString(overallElement)); + out.close(); + logger.info("Saved content by overwriting " + file); + return true; + } catch (IOException ex) { + logger.warn("Could not save content to " + file, ex); + JOptionPane.showMessageDialog(parent, + "Could not save to " + file + ": \n\n" + + ex.getMessage(), "Warning", + JOptionPane.WARNING_MESSAGE); + return false; + } + } + } + return false; + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ScriptPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ScriptPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ScriptPanel.java new file mode 100644 index 0000000..c36ac8c --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ScriptPanel.java @@ -0,0 +1,148 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.io.IOException; + +import javax.swing.AbstractAction; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.border.EmptyBorder; +import javax.swing.text.JTextComponent; + +import org.apache.taverna.activities.externaltool.ExternalToolActivityConfigurationBean; +import org.apache.taverna.lang.ui.DeselectingButton; +import org.apache.taverna.lang.ui.LineEnabledTextPanel; + +import org.jdom.input.SAXBuilder; + +import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription; +import de.uni_luebeck.inb.knowarc.usecases.UseCaseEnumeration; + + +/** + * @author alanrw + * + */ +public class ScriptPanel extends JPanel { + + private static final String SCRIPT_DESCRIPTION = "Specify the commands that you want to run. You can use data arriving at an input port to replace parts of the command or to write to a file. You can also take data written to a file and send it to an output port."; + static SAXBuilder builder = new SAXBuilder(); + private final JTextComponent scriptTextArea; + + public ScriptPanel(final ExternalToolConfigView view, JTextComponent scriptTextArea, JCheckBox stdInCheckBox, JCheckBox stdOutCheckBox, JCheckBox stdErrCheckBox, JTextField returnCodesField) { + super(); + this.setLayout(new BorderLayout()); + + JTextArea descriptionText = new JTextArea( + SCRIPT_DESCRIPTION); + descriptionText.setEditable(false); + descriptionText.setFocusable(false); + descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); + descriptionText.setLineWrap(true); + descriptionText.setWrapStyleWord(true); + this.add(descriptionText, BorderLayout.NORTH); + + this.scriptTextArea = scriptTextArea; + + this.add(new LineEnabledTextPanel(scriptTextArea), + BorderLayout.CENTER); + + + UseCaseDescription useCaseDescription = view.getConfiguration().getUseCaseDescription(); + stdInCheckBox.setSelected(useCaseDescription.isIncludeStdIn()); + stdOutCheckBox.setSelected(useCaseDescription.isIncludeStdOut()); + stdErrCheckBox.setSelected(useCaseDescription.isIncludeStdErr()); + returnCodesField.setText(useCaseDescription.getReturnCodesAsText()); + + JPanel codesPanel = new JPanel(new FlowLayout()); + codesPanel.add(new JLabel("Valid return codes:")); + codesPanel.add(returnCodesField); + + JPanel streamPanel = new JPanel(new FlowLayout()); + streamPanel.add(stdInCheckBox); + streamPanel.add(stdOutCheckBox); + streamPanel.add(stdErrCheckBox); + + JPanel buttonPanel = new JPanel(new FlowLayout()); + if (view.isOriginallyFromRepository()) { + JButton revertButton = new DeselectingButton("Revert to original description", + new AbstractAction(){ + + @Override + public void actionPerformed(ActionEvent e) { + ExternalToolActivityConfigurationBean bean = view.makeConfiguration(); + String repositoryUrl = bean.getRepositoryUrl(); + String id = bean.getExternaltoolid(); + UseCaseDescription usecase = null; + try { + usecase = UseCaseEnumeration.readDescriptionFromUrl( + repositoryUrl, id); + } + catch (IOException ex) { + // Already logged + } + if (usecase != null) { + bean.setUseCaseDescription(usecase); + view.setEditable(false, bean); + } else { + JOptionPane.showMessageDialog(view, "Unable to find tool description " + id, "Missing tool description", JOptionPane.ERROR_MESSAGE); + } + }}); + revertButton.setToolTipText("Revert to the tool description from the repository"); + buttonPanel.add(revertButton); + } + JButton loadScriptButton = new DeselectingButton("Load description", + new LoadDescriptionAction(this, view)); + loadScriptButton.setToolTipText("Load tool description from a file"); + + JButton saveScriptButton = new DeselectingButton("Export description", + new SaveDescriptionAction(this, view)); + saveScriptButton.setToolTipText("Export the tool description to a file"); + + JButton clearScriptButton = new DeselectingButton("Clear script", + new AbstractAction() { + + public void actionPerformed(ActionEvent e) { + clearScript(); + } + + }); + clearScriptButton.setToolTipText("Clear the script from the edit area"); + + buttonPanel.add(loadScriptButton); + buttonPanel.add(saveScriptButton); + buttonPanel.add(clearScriptButton); + + JPanel subPanel = new JPanel(new GridLayout(3,1)); + subPanel.add(codesPanel); + subPanel.add(streamPanel); + subPanel.add(buttonPanel); + + this.add(subPanel, BorderLayout.SOUTH); + } + + /** + * Method for clearing the script + * + */ + private void clearScript() { + if (JOptionPane.showConfirmDialog(this, + "Do you really want to clear the tool description?", + "Clearing the tool description", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + scriptTextArea.setText(""); + } + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticStringPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticStringPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticStringPanel.java new file mode 100644 index 0000000..3a1dc64 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticStringPanel.java @@ -0,0 +1,104 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.util.List; + +import javax.swing.AbstractAction; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.border.EmptyBorder; + +import org.apache.taverna.activities.externaltool.utils.Tools; +import org.apache.taverna.lang.ui.DeselectingButton; +import org.apache.taverna.lang.ui.ReadOnlyTextArea; + +/** + * @author alanrw + * + */ +public class StaticStringPanel extends JPanel { + + private static final String STATIC_STRING_DESCRIPTION = "A fixed string can be written to the specified file."; + private final List<ExternalToolStaticStringViewer> staticStringViewList; + + int staticGridy = 1; + + private static String[] elementLabels = new String[] {"String to copy", "To file"}; + + public StaticStringPanel(final List<ExternalToolStaticStringViewer> staticStringViewList) { + super(new BorderLayout()); + this.staticStringViewList = staticStringViewList; + final JPanel staticEditPanel = new JPanel(new GridBagLayout()); + + final GridBagConstraints staticConstraint = new GridBagConstraints(); + staticConstraint.insets = new Insets(5, 5, 5, 5); + staticConstraint.anchor = GridBagConstraints.FIRST_LINE_START; + staticConstraint.gridx = 0; + staticConstraint.gridy = 0; + staticConstraint.weightx = 0.1; + staticConstraint.fill = GridBagConstraints.BOTH; + + staticConstraint.gridx = 0; + synchronized (staticStringViewList) { + for (ExternalToolStaticStringViewer staticView : staticStringViewList) { + addStaticStringViewer(StaticStringPanel.this, staticEditPanel, + staticView); + } + } + + JTextArea descriptionText = new ReadOnlyTextArea( + STATIC_STRING_DESCRIPTION); + descriptionText.setEditable(false); + descriptionText.setFocusable(false); + descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); + this.add(descriptionText, BorderLayout.NORTH); + + this.add(new JScrollPane(staticEditPanel), + BorderLayout.CENTER); + JButton addStaticStringButton = new DeselectingButton("Add string", + new AbstractAction() { + // FIXME refactor this into a method + public void actionPerformed(ActionEvent e) { + + ExternalToolStaticStringViewer newViewer = new ExternalToolStaticStringViewer(); + synchronized (staticStringViewList) { + staticStringViewList.add(newViewer); + addStaticStringViewer(StaticStringPanel.this, staticEditPanel, + newViewer); + staticEditPanel.revalidate(); + staticEditPanel.repaint(); + } + } + + }); + + JPanel buttonPanel = new JPanel(new BorderLayout()); + + buttonPanel.add(addStaticStringButton, BorderLayout.EAST); + + this.add(buttonPanel, BorderLayout.SOUTH); + + } + + private void addStaticStringViewer(final JPanel outerPanel, + final JPanel panel, ExternalToolStaticStringViewer viewer) { + Tools.addViewer(panel, + elementLabels, + new JComponent[] {new JScrollPane(viewer.getContentField()), viewer.getValueField()}, + staticStringViewList, + viewer, + outerPanel); + } + + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticUrlPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticUrlPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticUrlPanel.java new file mode 100644 index 0000000..4f1dbd6 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StaticUrlPanel.java @@ -0,0 +1,106 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.util.List; + +import javax.swing.AbstractAction; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.border.EmptyBorder; + +import org.apache.taverna.activities.externaltool.utils.Tools; +import org.apache.taverna.lang.ui.DeselectingButton; +import org.apache.taverna.lang.ui.ReadOnlyTextArea; + +/** + * @author alanrw + * + */ +public class StaticUrlPanel extends JPanel { + + private static final String STATIC_URL_DESCRIPTION = "The data at a URL can be downloaded and stored in the specified file."; + private final List<ExternalToolStaticUrlViewer> staticUrlViewList; + private int staticGridy = 1; + + private static String[] elementLabels = new String[] {"Copy from URL", "To file"}; + + + public StaticUrlPanel(final List<ExternalToolStaticUrlViewer> staticUrlViewList) { + + super(new BorderLayout()); + this.staticUrlViewList = staticUrlViewList; + final JPanel staticEditPanel = new JPanel(new GridBagLayout()); + + final GridBagConstraints staticConstraint = new GridBagConstraints(); + staticConstraint.insets = new Insets(5, 5, 5, 5); + staticConstraint.anchor = GridBagConstraints.FIRST_LINE_START; + staticConstraint.gridx = 0; + staticConstraint.gridy = 0; + staticConstraint.weightx = 0.1; + staticConstraint.fill = GridBagConstraints.BOTH; + + staticConstraint.gridx = 0; + synchronized (staticUrlViewList) { + for (ExternalToolStaticUrlViewer staticView : staticUrlViewList) { + addStaticUrlViewer(this, staticEditPanel, + staticView); + } + } + + this.add(new JScrollPane(staticEditPanel), + BorderLayout.CENTER); + + JTextArea descriptionText = new ReadOnlyTextArea( + STATIC_URL_DESCRIPTION); + descriptionText.setEditable(false); + descriptionText.setFocusable(false); + descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); + + this.add(descriptionText, BorderLayout.NORTH); + + JButton addstaticPortButton = new DeselectingButton("Add URL", + new AbstractAction() { + // FIXME refactor this into a method + public void actionPerformed(ActionEvent e) { + + ExternalToolStaticUrlViewer newViewer = new ExternalToolStaticUrlViewer(); + synchronized (staticUrlViewList) { + staticUrlViewList.add(newViewer); + addStaticUrlViewer(StaticUrlPanel.this, staticEditPanel, + newViewer); + staticEditPanel.revalidate(); + staticEditPanel.repaint(); + } + } + + }); + JPanel buttonPanel = new JPanel(new BorderLayout()); + + buttonPanel.add(addstaticPortButton, BorderLayout.EAST); + + this.add(buttonPanel, BorderLayout.SOUTH); + + } + + private void addStaticUrlViewer(final JPanel outerPanel, + final JPanel panel, ExternalToolStaticUrlViewer viewer) { + Tools.addViewer(panel, + elementLabels, + new JComponent[] {viewer.getContentField(), viewer.getValueField()}, + staticUrlViewList, + viewer, + outerPanel); + } + + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StringReplacementPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StringReplacementPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StringReplacementPanel.java new file mode 100644 index 0000000..45b1d7f --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/StringReplacementPanel.java @@ -0,0 +1,130 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.util.List; + +import javax.swing.AbstractAction; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.border.CompoundBorder; +import javax.swing.border.EmptyBorder; + +import org.apache.taverna.activities.externaltool.utils.Tools; +import org.apache.taverna.lang.ui.DeselectingButton; + +/** + * @author alanrw + * + */ +public class StringReplacementPanel extends JPanel { + + private static final String STRING_REPLACEMENT_DESCRIPTION = "You can use a string replacement to " + + "feed data into the service via an input port and have that data replace part of the " + + "command."; + private final List<ExternalToolStringReplacementViewer> stringReplacementViewList; + private int stringReplacementGridy = 1; + private final ExternalToolConfigView view; + + private static Insets insets = new Insets(1,5,1,5); + + private static String[] elementLabels = new String[] {"Taverna port name", "Replace port name", "String to replace"}; + + private static CompoundBorder border = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(5,5,5,5), BorderFactory.createLineBorder(Color.BLACK, 1)); + + + public StringReplacementPanel(final ExternalToolConfigView view, final List<ExternalToolStringReplacementViewer> stringReplacementViewList) { + super(new BorderLayout()); + this.view = view; + this.stringReplacementViewList = stringReplacementViewList; + + final JPanel inputEditPanel = new JPanel(new GridBagLayout()); + + final GridBagConstraints inputConstraint = new GridBagConstraints(); + + inputConstraint.anchor = GridBagConstraints.FIRST_LINE_START; + inputConstraint.gridx = 0; + inputConstraint.gridy = 0; + inputConstraint.weightx = 0.1; + inputConstraint.fill = GridBagConstraints.BOTH; + + inputConstraint.gridx = 0; + synchronized (stringReplacementViewList) { + for (ExternalToolStringReplacementViewer inputView : stringReplacementViewList) { + addStringReplacementViewer(this, inputEditPanel, + inputView, elementLabels); + + } + } + + JTextArea descriptionText = new JTextArea( + STRING_REPLACEMENT_DESCRIPTION); + descriptionText.setEditable(false); + descriptionText.setFocusable(false); + descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); + descriptionText.setLineWrap(true); + descriptionText.setWrapStyleWord(true); + + this.add(descriptionText, BorderLayout.NORTH); + this.add(new JScrollPane(inputEditPanel), + BorderLayout.CENTER); + JButton addInputPortButton = new DeselectingButton("Add string replacement", + new AbstractAction() { + + public void actionPerformed(ActionEvent e) { + + int portNumber = 1; + String name2 = "in" + portNumber++; + boolean nameExists = true; + while (nameExists == true) { + nameExists = view.portNameExists(name2); + if (nameExists) { + name2 = "in" + portNumber++; + } + } + + ExternalToolStringReplacementViewer newViewer = new ExternalToolStringReplacementViewer( + name2); + synchronized (stringReplacementViewList) { + stringReplacementViewList.add(newViewer); + addStringReplacementViewer(StringReplacementPanel.this, inputEditPanel, + newViewer, elementLabels); + inputEditPanel.revalidate(); + inputEditPanel.repaint(); + } + + } + + }); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new BorderLayout()); + + buttonPanel.add(addInputPortButton, BorderLayout.EAST); + + this.add(buttonPanel, BorderLayout.SOUTH); + } + + private void addStringReplacementViewer(final JPanel outerPanel, + final JPanel innerPanel, final ExternalToolStringReplacementViewer viewer, String[] elementLabels) { + Tools.addViewer(innerPanel, + elementLabels, + new JComponent[] {viewer.getNameField(), viewer.getValueFromField(), viewer.getValueField()}, + stringReplacementViewList, + viewer, + outerPanel); + } + + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ToolXMLPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ToolXMLPanel.java b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ToolXMLPanel.java new file mode 100644 index 0000000..f3e8b9b --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ToolXMLPanel.java @@ -0,0 +1,33 @@ +/** + * + */ +package org.apache.taverna.activities.externaltool.views; + +import java.awt.BorderLayout; + +import javax.swing.JPanel; +import javax.swing.JScrollPane; + +import org.apache.taverna.renderers.impl.XMLTree; + +import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription; + +/** + * @author alanrw + * + */ +public class ToolXMLPanel extends JPanel { + + public ToolXMLPanel(UseCaseDescription useCaseDescription) { + super(new BorderLayout()); + XMLTree xmlTree = new XMLTree(useCaseDescription.writeToXMLElement()); + this.add(new JScrollPane(xmlTree), BorderLayout.CENTER); + } + + public void regenerateTree(UseCaseDescription useCaseDescription) { + this.removeAll(); + XMLTree xmlTree = new XMLTree(useCaseDescription.writeToXMLElement()); + this.add(new JScrollPane(xmlTree), BorderLayout.CENTER); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor deleted file mode 100644 index 9307977..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor +++ /dev/null @@ -1,2 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.manager.local.LocalInvocationMechanismEditor -net.sf.taverna.t2.activities.externaltool.manager.ssh.SshInvocationMechanismEditor http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider deleted file mode 100644 index e94cf6e..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider +++ /dev/null @@ -1,2 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolServiceProvider -net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolTemplateServiceDescription http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent deleted file mode 100644 index db316f2..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent +++ /dev/null @@ -1,4 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.menu.ConfigureExternalToolMenuAction -# net.sf.taverna.t2.activities.externaltool.menu.FeedbackMenuAction -net.sf.taverna.t2.activities.externaltool.menu.AddExternalToolContextualMenuAction -net.sf.taverna.t2.activities.externaltool.menu.AddExternalToolMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI deleted file mode 100644 index e6686a0..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManagerShutdownHook \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI deleted file mode 100644 index 0dd97e4..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.StartupSPI +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManagerStartupHook http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI deleted file mode 100644 index cdafd5d..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolActivityIcon http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory deleted file mode 100644 index b3d1525..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.manager.ToolInvocationConfigurationUIFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory deleted file mode 100644 index ca0d30f..0000000 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.activities.externaltool.views.ExternalToolActivityViewFactory http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor new file mode 100644 index 0000000..c7e77f2 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor @@ -0,0 +1,2 @@ +org.apache.taverna.activities.externaltool.manager.local.LocalInvocationMechanismEditor +org.apache.taverna.activities.externaltool.manager.ssh.SshInvocationMechanismEditor http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider new file mode 100644 index 0000000..85b2281 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider @@ -0,0 +1,2 @@ +org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolServiceProvider +org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolTemplateServiceDescription http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent new file mode 100644 index 0000000..3ecf793 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent @@ -0,0 +1,4 @@ +org.apache.taverna.activities.externaltool.menu.ConfigureExternalToolMenuAction +# org.apache.taverna.activities.externaltool.menu.FeedbackMenuAction +org.apache.taverna.activities.externaltool.menu.AddExternalToolContextualMenuAction +org.apache.taverna.activities.externaltool.menu.AddExternalToolMenuAction http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ShutdownSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ShutdownSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ShutdownSPI new file mode 100644 index 0000000..196d2af --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ShutdownSPI @@ -0,0 +1 @@ +org.apache.taverna.activities.externaltool.manager.InvocationGroupManagerShutdownHook \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.StartupSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.StartupSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.StartupSPI new file mode 100644 index 0000000..25ab1dd --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.StartupSPI @@ -0,0 +1 @@ +org.apache.taverna.activities.externaltool.manager.InvocationGroupManagerStartupHook http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI new file mode 100644 index 0000000..95db995 --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI @@ -0,0 +1 @@ +org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolActivityIcon http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.configuration.ConfigurationUIFactory ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.configuration.ConfigurationUIFactory b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.configuration.ConfigurationUIFactory new file mode 100644 index 0000000..b5cec7c --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.configuration.ConfigurationUIFactory @@ -0,0 +1 @@ +org.apache.taverna.activities.externaltool.manager.ToolInvocationConfigurationUIFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory new file mode 100644 index 0000000..30770cc --- /dev/null +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory @@ -0,0 +1 @@ +org.apache.taverna.activities.externaltool.views.ExternalToolActivityViewFactory http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context-osgi.xml b/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context-osgi.xml index 3d7110c..996fbc9 100644 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context-osgi.xml +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context-osgi.xml @@ -8,32 +8,32 @@ <service ref="ToolInvocationConfigurationUIFactory" interface="uk.org.taverna.configuration.ConfigurationUIFactory" /> - <service ref="InvocationGroupManagerStartupHook" interface="net.sf.taverna.t2.workbench.StartupSPI" /> + <service ref="InvocationGroupManagerStartupHook" interface="org.apache.taverna.workbench.StartupSPI" /> - <service ref="ExternalToolActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" /> + <service ref="ExternalToolActivityIcon" interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" /> - <service ref="LocalInvocationMechanismEditor" interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor" /> - <service ref="SshInvocationMechanismEditor" interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor" /> + <service ref="LocalInvocationMechanismEditor" interface="org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor" /> + <service ref="SshInvocationMechanismEditor" interface="org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor" /> - <service ref="ExternalToolServiceProvider" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider" /> - <service ref="ExternalToolTemplateServiceDescription" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider" /> + <service ref="ExternalToolServiceProvider" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionProvider" /> + <service ref="ExternalToolTemplateServiceDescription" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionProvider" /> <service ref="ConfigureExternalToolMenuAction" auto-export="interfaces" /> <service ref="AddExternalToolContextualMenuAction" auto-export="interfaces" /> <service ref="AddExternalToolMenuAction" auto-export="interfaces" /> - <service ref="InvocationGroupManagerShutdownHook" interface="net.sf.taverna.t2.workbench.ShutdownSPI" /> + <service ref="InvocationGroupManagerShutdownHook" interface="org.apache.taverna.workbench.ShutdownSPI" /> - <service ref="ExternalToolActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" /> + <service ref="ExternalToolActivityViewFactory" interface="org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory" /> - <list id="mechanismCreators" interface="net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator" cardinality="0..N" /> - <list id="invocationMechanismEditors" interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismEditor" cardinality="0..N" /> + <list id="mechanismCreators" interface="org.apache.taverna.activities.externaltool.manager.MechanismCreator" cardinality="0..N" /> + <list id="invocationMechanismEditors" interface="org.apache.taverna.activities.externaltool.manager.InvocationMechanismEditor" cardinality="0..N" /> - <reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" /> - <reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" /> - <reference id="menuManager" interface="net.sf.taverna.t2.ui.menu.MenuManager" /> - <reference id="selectionManager" interface="net.sf.taverna.t2.workbench.selection.SelectionManager" /> - <reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" /> - <reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" /> + <reference id="editManager" interface="org.apache.taverna.workbench.edits.EditManager" /> + <reference id="fileManager" interface="org.apache.taverna.workbench.file.FileManager" /> + <reference id="menuManager" interface="org.apache.taverna.ui.menu.MenuManager" /> + <reference id="selectionManager" interface="org.apache.taverna.workbench.selection.SelectionManager" /> + <reference id="activityIconManager" interface="org.apache.taverna.workbench.activityicons.ActivityIconManager" /> + <reference id="colourManager" interface="org.apache.taverna.workbench.configuration.colour.ColourManager" /> </beans:beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context.xml ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context.xml b/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context.xml index 7cf7f63..54f9cd7 100644 --- a/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context.xml +++ b/taverna-external-tool-activity-ui/src/main/resources/META-INF/spring/external-tool-activity-ui-context.xml @@ -3,44 +3,44 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - <bean id="ToolInvocationConfigurationUIFactory" class="net.sf.taverna.t2.activities.externaltool.manager.ToolInvocationConfigurationUIFactory"> + <bean id="ToolInvocationConfigurationUIFactory" class="org.apache.taverna.activities.externaltool.manager.ToolInvocationConfigurationUIFactory"> <property name="mechanismCreators" ref="mechanismCreators" /> <property name="invocationMechanismEditors" ref="invocationMechanismEditors" /> </bean> - <bean id="InvocationGroupManagerStartupHook" class="net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManagerStartupHook" /> + <bean id="InvocationGroupManagerStartupHook" class="org.apache.taverna.activities.externaltool.manager.InvocationGroupManagerStartupHook" /> - <bean id="ExternalToolActivityIcon" class="net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolActivityIcon"> + <bean id="ExternalToolActivityIcon" class="org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolActivityIcon"> <property name="colourManager" ref="colourManager" /> </bean> - <bean id="LocalInvocationMechanismEditor" class="net.sf.taverna.t2.activities.externaltool.manager.local.LocalInvocationMechanismEditor" /> - <bean id="SshInvocationMechanismEditor" class="net.sf.taverna.t2.activities.externaltool.manager.ssh.SshInvocationMechanismEditor" /> + <bean id="LocalInvocationMechanismEditor" class="org.apache.taverna.activities.externaltool.manager.local.LocalInvocationMechanismEditor" /> + <bean id="SshInvocationMechanismEditor" class="org.apache.taverna.activities.externaltool.manager.ssh.SshInvocationMechanismEditor" /> - <bean id="ExternalToolServiceProvider" class="net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolServiceProvider" /> - <bean id="ExternalToolTemplateServiceDescription" class="net.sf.taverna.t2.activities.externaltool.servicedescriptions.ExternalToolTemplateServiceDescription" /> + <bean id="ExternalToolServiceProvider" class="org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolServiceProvider" /> + <bean id="ExternalToolTemplateServiceDescription" class="org.apache.taverna.activities.externaltool.servicedescriptions.ExternalToolTemplateServiceDescription" /> - <bean id="ConfigureExternalToolMenuAction" class="net.sf.taverna.t2.activities.externaltool.menu.ConfigureExternalToolMenuAction"> + <bean id="ConfigureExternalToolMenuAction" class="org.apache.taverna.activities.externaltool.menu.ConfigureExternalToolMenuAction"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="activityIconManager" ref="activityIconManager" /> </bean> - <bean id="AddExternalToolContextualMenuAction" class="net.sf.taverna.t2.activities.externaltool.menu.AddExternalToolContextualMenuAction"> + <bean id="AddExternalToolContextualMenuAction" class="org.apache.taverna.activities.externaltool.menu.AddExternalToolContextualMenuAction"> <property name="editManager" ref="editManager" /> <property name="menuManager" ref="menuManager" /> <property name="selectionManager" ref="selectionManager" /> <property name="activityIconManager" ref="activityIconManager" /> </bean> - <bean id="AddExternalToolMenuAction" class="net.sf.taverna.t2.activities.externaltool.menu.AddExternalToolMenuAction"> + <bean id="AddExternalToolMenuAction" class="org.apache.taverna.activities.externaltool.menu.AddExternalToolMenuAction"> <property name="editManager" ref="editManager" /> <property name="menuManager" ref="menuManager" /> <property name="selectionManager" ref="selectionManager" /> <property name="activityIconManager" ref="activityIconManager" /> </bean> - <bean id="InvocationGroupManagerShutdownHook" class="net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManagerShutdownHook" /> + <bean id="InvocationGroupManagerShutdownHook" class="org.apache.taverna.activities.externaltool.manager.InvocationGroupManagerShutdownHook" /> - <bean id="ExternalToolActivityViewFactory" class="net.sf.taverna.t2.activities.externaltool.views.ExternalToolActivityViewFactory"> + <bean id="ExternalToolActivityViewFactory" class="org.apache.taverna.activities.externaltool.views.ExternalToolActivityViewFactory"> <property name="editManager" ref="editManager" /> <property name="fileManager" ref="fileManager" /> <property name="activityIconManager" ref="activityIconManager" /> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/actions/LocalworkerActivityConfigurationAction.java ---------------------------------------------------------------------- diff --git a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/actions/LocalworkerActivityConfigurationAction.java b/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/actions/LocalworkerActivityConfigurationAction.java deleted file mode 100644 index 056e868..0000000 --- a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/actions/LocalworkerActivityConfigurationAction.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 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 net.sf.taverna.t2.activities.localworker.actions; - -import java.awt.Frame; -import java.awt.event.ActionEvent; - -import javax.swing.Action; -import javax.swing.JOptionPane; - -import net.sf.taverna.t2.activities.localworker.views.LocalworkerActivityConfigView; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; -import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction; -import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog; -import uk.org.taverna.configuration.app.ApplicationConfiguration; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * The {@link LocalworkerActivity}s have pre-defined scripts, ports etc in a serialised form on - * disk. So if the user wants to change them they have to do so at own risk. - * - * @author Ian Dunlop - */ -@SuppressWarnings("serial") -public class LocalworkerActivityConfigurationAction extends ActivityConfigurationAction { - - public static final String EDIT_LOCALWORKER_SCRIPT = "Edit beanshell script"; - - private final EditManager editManager; - - private final FileManager fileManager; - - private final ApplicationConfiguration applicationConfiguration; - - private Scufl2Tools scufl2Tools = new Scufl2Tools(); - - public LocalworkerActivityConfigurationAction(Activity activity, Frame owner, - EditManager editManager, FileManager fileManager, - ActivityIconManager activityIconManager, - ServiceDescriptionRegistry serviceDescriptionRegistry, - ApplicationConfiguration applicationConfiguration) { - super(activity, activityIconManager, serviceDescriptionRegistry); - this.editManager = editManager; - this.fileManager = fileManager; - this.applicationConfiguration = applicationConfiguration; - putValue(Action.NAME, EDIT_LOCALWORKER_SCRIPT); - } - - /** - * If the localworker has not been changed it pops up a {@link JOptionPane} warning the user - * that they change things at their own risk. Otherwise just show the config view - */ - public void actionPerformed(ActionEvent e) { - Object[] options = { "Continue", "Cancel" }; - Configuration configuration = scufl2Tools.configurationFor(activity, activity.getParent()); - JsonNode json = configuration.getJson(); - if (!json.get("isAltered").booleanValue()) { - int n = JOptionPane - .showOptionDialog( - null, - "Changing the properties of a Local Worker may affect its behaviour. Do you want to continue?", - "WARNING", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, - null, // do not use a - // custom Icon - options, options[0]); - - if (n == 0) { - // continue was clicked so prepare for config - openDialog(); - } else { - // do nothing - } - } else { - openDialog(); - } - } - - private void openDialog() { - ActivityConfigurationDialog currentDialog = ActivityConfigurationAction - .getDialog(getActivity()); - if (currentDialog != null) { - currentDialog.toFront(); - return; - } - final LocalworkerActivityConfigView localworkerConfigView = new LocalworkerActivityConfigView( - getActivity(), applicationConfiguration); - final ActivityConfigurationDialog dialog = new ActivityConfigurationDialog(getActivity(), - localworkerConfigView, editManager); - ActivityConfigurationAction.setDialog(getActivity(), dialog, fileManager); - - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/menu/ConfigureLocalworkerMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/menu/ConfigureLocalworkerMenuAction.java b/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/menu/ConfigureLocalworkerMenuAction.java deleted file mode 100644 index 3afed8d..0000000 --- a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/menu/ConfigureLocalworkerMenuAction.java +++ /dev/null @@ -1,62 +0,0 @@ -package net.sf.taverna.t2.activities.localworker.menu; - -import javax.swing.Action; - -import uk.org.taverna.configuration.app.ApplicationConfiguration; - -import net.sf.taverna.t2.activities.beanshell.actions.BeanshellActivityConfigurationAction; -import net.sf.taverna.t2.activities.localworker.actions.LocalworkerActivityConfigurationAction; -import net.sf.taverna.t2.activities.localworker.servicedescriptions.LocalworkerServiceDescription; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; -import net.sf.taverna.t2.ui.menu.ContextualMenuComponent; -import net.sf.taverna.t2.ui.menu.MenuComponent; -import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager; -import net.sf.taverna.t2.workbench.activitytools.AbstractConfigureActivityMenuAction; -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; - -public class ConfigureLocalworkerMenuAction extends AbstractConfigureActivityMenuAction implements - MenuComponent, ContextualMenuComponent { - - private EditManager editManager; - private FileManager fileManager; - private ActivityIconManager activityIconManager; - private ServiceDescriptionRegistry serviceDescriptionRegistry; - private ApplicationConfiguration applicationConfiguration; - - public ConfigureLocalworkerMenuAction() { - super(LocalworkerServiceDescription.ACTIVITY_TYPE); - } - - @Override - protected Action createAction() { - Action result = null; - result = new LocalworkerActivityConfigurationAction(findActivity(), getParentFrame(), - editManager, fileManager, activityIconManager, serviceDescriptionRegistry, - applicationConfiguration); - result.putValue(Action.NAME, BeanshellActivityConfigurationAction.EDIT_BEANSHELL_SCRIPT); - addMenuDots(result); - return result; - } - - public void setEditManager(EditManager editManager) { - this.editManager = editManager; - } - - public void setFileManager(FileManager fileManager) { - this.fileManager = fileManager; - } - - public void setActivityIconManager(ActivityIconManager activityIconManager) { - this.activityIconManager = activityIconManager; - } - - public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) { - this.serviceDescriptionRegistry = serviceDescriptionRegistry; - } - - public void setApplicationConfiguration(ApplicationConfiguration applicationConfiguration) { - this.applicationConfiguration = applicationConfiguration; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerActivityIcon.java ---------------------------------------------------------------------- diff --git a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerActivityIcon.java b/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerActivityIcon.java deleted file mode 100644 index 7d6bb5a..0000000 --- a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerActivityIcon.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 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 net.sf.taverna.t2.activities.localworker.servicedescriptions; - -import java.net.URI; - -import javax.swing.Icon; -import javax.swing.ImageIcon; - -import net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI; - -/** - * - * @author Alex Nenadic - * @author David Withers - */ -public class LocalworkerActivityIcon implements ActivityIconSPI { - - private static Icon icon; - - public int canProvideIconScore(URI activityType) { - if (LocalworkerServiceDescription.ACTIVITY_TYPE.equals(activityType)) - return DEFAULT_ICON + 1; - else - return NO_ICON; - } - - public Icon getIcon(URI activityType) { - return getLocalworkerIcon(); - } - - public static Icon getLocalworkerIcon() { - if (icon == null) { - icon = new ImageIcon(LocalworkerActivityIcon.class - .getResource("/localworker.png")); - } - return icon; - } -} - http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerServiceDescription.java ---------------------------------------------------------------------- diff --git a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerServiceDescription.java b/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerServiceDescription.java deleted file mode 100644 index 713de2c..0000000 --- a/taverna-localworker-activity-ui/src/main/java/net/sf/taverna/t2/activities/localworker/servicedescriptions/LocalworkerServiceDescription.java +++ /dev/null @@ -1,105 +0,0 @@ -package net.sf.taverna.t2.activities.localworker.servicedescriptions; - -import java.net.URI; -import java.util.Arrays; -import java.util.List; - -import javax.swing.Icon; - -import net.sf.taverna.t2.servicedescriptions.ServiceDescription; -import org.apache.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.JsonNode; - -public class LocalworkerServiceDescription extends ServiceDescription { - - public static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/localworker"); - - private static final String LOCALWORKER = ServiceDescription.LOCAL_SERVICES; - - private JsonNode json; - private String operation; - private String category; - private String provider; - private String localworkerName; - - public JsonNode getJson() { - return json; - } - - public void setJson(JsonNode json) { - this.json = json; - } - - public String getOperation() { - return operation; - } - - public void setOperation(String operation) { - this.operation = operation; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public String getProvider() { - return provider; - } - - public void setProvider(String provider) { - this.provider = provider; - } - - public String getLocalworkerName() { - return localworkerName; - } - - public void setLocalworkerName(String localworkerName) { - this.localworkerName = localworkerName; - } - - public String getType() { - return "Localworker"; - } - - @Override - public URI getActivityType() { - return ACTIVITY_TYPE; - } - - @Override - public Configuration getActivityConfiguration() { - Configuration configuration = new Configuration(); - configuration.setType(ACTIVITY_TYPE.resolve("#Config")); - configuration.setJson(getJson()); - return configuration; - } - - @Override - public Icon getIcon() { - return LocalworkerActivityIcon.getLocalworkerIcon(); - } - - @Override - public String getName() { - return operation; - } - - @Override - public List<? extends Comparable<?>> getPath() { - List<String> result = - Arrays.asList (LOCALWORKER, category); - return result; - } - - @Override - protected List<Object> getIdentifyingData() { - return Arrays.<Object>asList(getJson()); - } - -}
