http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java deleted file mode 100644 index 4723a78..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolConfigView.java +++ /dev/null @@ -1,868 +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.externaltool.views; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.Map.Entry; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.help.CSH; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JEditorPane; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.JTextPane; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import net.sf.taverna.t2.activities.externaltool.ExternalToolActivity; -import net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean; -import net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker; -import net.sf.taverna.t2.activities.externaltool.utils.Tools; -import net.sf.taverna.t2.lang.ui.KeywordDocument; -import net.sf.taverna.t2.lang.ui.LinePainter; -import net.sf.taverna.t2.lang.ui.NoWrapEditorKit; -import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel; - -import org.apache.log4j.Logger; - -import de.uni_luebeck.inb.knowarc.usecases.ScriptInput; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser; -import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput; -import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription; - -/** - * Provides the configurable view for a {@link ExternalToolActivity} through - * it's {@link ExternalToolActivityConfigurationBean}. Has 3 main tabs - Script, - * Ports & Dependencies. The {@link #inputViewList} contains the - * {@link ExternalToolInputViewer}s describing the input ports and - * {@link #outputViewList} has the {@link ExternalToolFileViewer}s - * - * @author Ian Dunlop - * @author Alex Nenadic - * @author Alan R Williams - * - */ -@SuppressWarnings("serial") -public class ExternalToolConfigView - extends - ActivityConfigurationPanel<ExternalToolActivity, ExternalToolActivityConfigurationBean> { - - private static final Color LINE_COLOR = new Color(225,225,225); - - private static final String FILE_INPUT_DESCRIPTION = "You can use a file input to feed data into " + - "the service via an input port and have that data written to the specified file."; - - private static final String FILE_OUTPUT_DESCRIPTION = "You can use a file output to take the " + - "content of a file produced by the tool and send it to an output port of the service."; - - private static final String FILE_LIST_DESCRIPTION = "If you feed a list of data into a file list " + - "input, then each data item is written to a temporary file. A file is produced containing " + - "the names of those temporary file. That index file can then be used as part of the tool " + - "command."; - - private static final String VALID_NAME_REGEX = "[\\p{L}\\p{Digit}_]+"; - - private static Logger logger = Logger - .getLogger(ExternalToolConfigView.class); - - /** The activity which this view describes */ - protected ExternalToolActivity activity; - - /** The configuration bean used to configure the activity */ - private ExternalToolActivityConfigurationBean configuration; - - private JTabbedPane tabbedPane = null; - private JPanel advancedPanel = null; - private JTabbedPane advancedTab = null; - private AnnotationPanel annotationPanel = null; - - private int stringReplacementGridy = 1; - private List<ExternalToolStringReplacementViewer> stringReplacementViewList = new ArrayList<ExternalToolStringReplacementViewer>(); - - private List<ExternalToolFileViewer> inputFileViewList = new ArrayList<ExternalToolFileViewer>(); - - private List<ExternalToolFileViewer> fileListViewList = new ArrayList<ExternalToolFileViewer>(); - - private int inputGridy = 1; - - private int outputGridy = 1; - private List<ExternalToolFileViewer> outputViewList = new ArrayList<ExternalToolFileViewer>(); - - private int staticGridy = 1; - private List<ExternalToolStaticUrlViewer> staticUrlViewList = new ArrayList<ExternalToolStaticUrlViewer>(); - - private List<ExternalToolStaticStringViewer> staticStringViewList = new ArrayList<ExternalToolStaticStringViewer>(); - -/* private List<ExternalToolRuntimeEnvironmentViewer> runtimeEnvironmentViewList = new ArrayList<ExternalToolRuntimeEnvironmentViewer>(); -*/ - - private JTextField nameField = new JTextField(20); - private JTextField groupField = new JTextField(20); - private JTextArea descriptionArea = new JTextArea(6, 40); - - private JEditorPane scriptTextArea; - - private InvocationPanel invocationPanel; - - private JCheckBox stdInCheckBox = new JCheckBox("Show STDIN"); - private JCheckBox stdOutCheckBox = new JCheckBox("Show STDOUT"); - private JCheckBox stdErrCheckBox = new JCheckBox("Show STDERR"); - - private JTextField returnCodesField = new JTextField(20); - - /** - * Stores the {@link ExternalToolActivity}, gets its - * {@link ExternalToolActivityConfigurationBean}, sets the layout and calls - * {@link #initialise()} to get the view going - * - * @param activity - * the {@link ExternalToolActivity} that the view is over - */ - public ExternalToolConfigView(ExternalToolActivity activity) { - this.activity = activity; - ExternalToolActivityHealthChecker.updateLocation(activity.getConfiguration()); - configuration = (ExternalToolActivityConfigurationBean) cloneBean(activity - .getConfiguration()); - setLayout(new GridBagLayout()); - initialise(configuration); - } - - public void noteConfiguration() { - configuration = makeConfiguration(); - } - - public ExternalToolActivityConfigurationBean makeConfiguration() { - ExternalToolActivityConfigurationBean newConfiguration = (ExternalToolActivityConfigurationBean) cloneBean(configuration); - ExternalToolActivityHealthChecker.updateLocation(newConfiguration); - - - if (!isFromRepository()) { - UseCaseDescription ucd = newConfiguration.getUseCaseDescription(); - - ucd.setUsecaseid(nameField.getText()); - if (groupField.getText().isEmpty()) { - ucd.setGroup(null); - } else { - ucd.setGroup(groupField.getText()); - } - ucd.setDescription(descriptionArea.getText()); - ucd.setCommand(scriptTextArea.getText()); - ucd.setReturnCodesAsText(returnCodesField.getText()); - ucd.setIncludeStdIn(stdInCheckBox.isSelected()); - ucd.setIncludeStdOut(stdOutCheckBox.isSelected()); - ucd.setIncludeStdErr(stdErrCheckBox.isSelected()); - - ucd.getInputs().clear(); - ucd.getTags().clear(); - synchronized (fileListViewList) { - for (ExternalToolFileViewer viewer : fileListViewList) { - ScriptInputUser si = new ScriptInputUser(); - si.setBinary(viewer.isBinary()); - si.setList(true); - si.setTag(viewer.getValue()); - si.setTempFile(false); - si.setFile(true); - ucd.getInputs().put(viewer.getName(), si); - } - } - - synchronized (stringReplacementViewList) { - for (ExternalToolStringReplacementViewer viewer : stringReplacementViewList) { - ScriptInputUser si = new ScriptInputUser(); - si.setBinary(false); - si.setList(false); - si.setTag(viewer.getValue()); - si.setTempFile(false); - si.setFile(false); - ucd.getTags().add(si.getTag()); - ucd.getInputs().put(viewer.getName(), si); - } - } - - synchronized (inputFileViewList) { - for (ExternalToolFileViewer viewer : inputFileViewList) { - ScriptInputUser si = new ScriptInputUser(); - si.setBinary(viewer.isBinary()); - si.setList(false); - si.setTag(viewer.getValue()); - si.setTempFile(false); - si.setFile(true); - ucd.getInputs().put(viewer.getName(), si); - } - } - - synchronized (outputViewList) { - ucd.getOutputs().clear(); - for (ExternalToolFileViewer viewer : outputViewList) { - ScriptOutput so = new ScriptOutput(); - so.setBinary(viewer.isBinary()); - so.setPath(viewer.getValue()); - ucd.getOutputs().put(viewer.getName(), so); - } - } - ucd.getStatic_inputs().clear(); - synchronized (staticStringViewList) { - for (ExternalToolStaticStringViewer viewer : staticStringViewList) { - ScriptInputStatic sis = new ScriptInputStatic(); - sis.setContent(viewer.getContent()); - sis.setTag(viewer.getValue()); - sis.setTempFile(false); - sis.setFile(true); - ucd.getStatic_inputs().add(sis); - } - } - synchronized (staticUrlViewList) { - for (ExternalToolStaticUrlViewer viewer : staticUrlViewList) { - ScriptInputStatic sis = new ScriptInputStatic(); - sis.setUrl(viewer.getContent()); - sis.setTag(viewer.getValue()); - sis.setTempFile(false); - sis.setFile(true); - ucd.getStatic_inputs().add(sis); - } - } - -/* synchronized (runtimeEnvironmentViewList) { - ucd.getREs().clear(); - for (ExternalToolRuntimeEnvironmentViewer viewer : runtimeEnvironmentViewList) { - RuntimeEnvironmentConstraint newConstraint = new RuntimeEnvironmentConstraint( - viewer.getId(), viewer.getRelation()); - ucd.getREs().add(newConstraint); - } - }*/ - } - invocationPanel.fillInConfiguration(newConfiguration); - - return newConfiguration; - } - - public boolean isConfigurationChanged() { - String configurationString = convertBeanToString(activity - .getConfiguration()); - return (!convertBeanToString(makeConfiguration()).equals( - configurationString)); - } - - /** - * Adds a {@link JButton} which handles the reconfiguring of the - * {@link ExternalToolActivity} through the altered - * {@link ExternalToolActivityConfigurationBean}. Sets up the initial tabs - - * Script (also sets the initial value), Ports & Dependencies and their - * initial values through {@link #setDependencies()}, - * {@link #getPortPanel()} - */ - private void initialise(ExternalToolActivityConfigurationBean configuration) { - CSH.setHelpIDString( - this, - "net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ExternalToolConfigView"); - this.configuration = configuration; - setBorder(javax.swing.BorderFactory.createTitledBorder(null, null, - javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, - javax.swing.border.TitledBorder.DEFAULT_POSITION, - new java.awt.Font("Lucida Grande", 1, 12))); - - tabbedPane = new JTabbedPane(); - - if (invocationPanel != null) { - invocationPanel.stopObserving(); - } - - if (!isFromRepository()) { - UseCaseDescription useCaseDescription = configuration - .getUseCaseDescription(); - - nameField.setText(useCaseDescription.getUsecaseid()); - if (useCaseDescription.getGroup() != null) { - groupField.setText(useCaseDescription.getGroup()); - } - descriptionArea.setText(useCaseDescription.getDescription()); - stringReplacementViewList = new ArrayList<ExternalToolStringReplacementViewer>(); - inputFileViewList = new ArrayList<ExternalToolFileViewer>(); - fileListViewList = new ArrayList<ExternalToolFileViewer>(); - outputViewList = new ArrayList<ExternalToolFileViewer>(); - staticUrlViewList = new ArrayList<ExternalToolStaticUrlViewer>(); - staticStringViewList = new ArrayList<ExternalToolStaticStringViewer>(); -/* runtimeEnvironmentViewList = new ArrayList<ExternalToolRuntimeEnvironmentViewer>();*/ - - for (Entry<String, ScriptInput> entry : useCaseDescription - .getInputs().entrySet()) { - String name = entry.getKey(); - ScriptInputUser si = (ScriptInputUser) entry.getValue(); - if (Tools.isStringReplacement(si)) { - final ExternalToolStringReplacementViewer inputView = new ExternalToolStringReplacementViewer( - name, si); - stringReplacementViewList.add(inputView); - } - - } - Collections.sort(stringReplacementViewList, - new Comparator<ExternalToolStringReplacementViewer>() { - - @Override - public int compare( - ExternalToolStringReplacementViewer o1, - ExternalToolStringReplacementViewer o2) { - return o1.getName().compareTo(o2.getName()); - } - }); - - for (Entry<String, ScriptInput> entry : useCaseDescription - .getInputs().entrySet()) { - String name = entry.getKey(); - ScriptInputUser si = (ScriptInputUser) entry.getValue(); - if (Tools.isInputFile(si)) { - final ExternalToolFileViewer inputView = new ExternalToolFileViewer( - name, si.getTag(), si.isBinary()); - inputFileViewList.add(inputView); - } - - } - Collections.sort(inputFileViewList, - new Comparator<ExternalToolFileViewer>() { - - @Override - public int compare(ExternalToolFileViewer o1, - ExternalToolFileViewer o2) { - return o1.getName().compareTo(o2.getName()); - } - }); - - for (Entry<String, ScriptInput> entry : useCaseDescription - .getInputs().entrySet()) { - String name = entry.getKey(); - ScriptInputUser si = (ScriptInputUser) entry.getValue(); - if (Tools.isFileList(si)) { - final ExternalToolFileViewer inputView = new ExternalToolFileViewer( - name, si.getTag(), si.isBinary()); - fileListViewList.add(inputView); - } - - } - Collections.sort(fileListViewList, - new Comparator<ExternalToolFileViewer>() { - - @Override - public int compare(ExternalToolFileViewer o1, - ExternalToolFileViewer o2) { - return o1.getName().compareTo(o2.getName()); - } - }); - - for (Entry<String, ScriptOutput> entry : useCaseDescription - .getOutputs().entrySet()) { - ScriptOutput so = entry.getValue(); - final ExternalToolFileViewer outputView = new ExternalToolFileViewer( - entry.getKey(), so.getPath(), so.isBinary()); - outputViewList.add(outputView); - } - Collections.sort(outputViewList, - new Comparator<ExternalToolFileViewer>() { - - @Override - public int compare(ExternalToolFileViewer o1, - ExternalToolFileViewer o2) { - return o1.getName().compareTo(o2.getName()); - } - }); - - for (ScriptInputStatic siss : useCaseDescription.getStatic_inputs()) { - if ((siss.getUrl() == null) && siss.isFile()) { - final ExternalToolStaticStringViewer staticView = new ExternalToolStaticStringViewer( - siss); - staticStringViewList.add(staticView); - } - } - Collections.sort(staticStringViewList, - new Comparator<ExternalToolStaticStringViewer>() { - - @Override - public int compare(ExternalToolStaticStringViewer o1, - ExternalToolStaticStringViewer o2) { - return o1.getContent().compareTo(o2.getContent()); - } - }); - - for (ScriptInputStatic sis : useCaseDescription.getStatic_inputs()) { - if ((sis.getUrl() != null) && sis.isFile()) { - final ExternalToolStaticUrlViewer staticView = new ExternalToolStaticUrlViewer( - sis); - staticUrlViewList.add(staticView); - } - } - Collections.sort(staticUrlViewList, - new Comparator<ExternalToolStaticUrlViewer>() { - - @Override - public int compare(ExternalToolStaticUrlViewer o1, - ExternalToolStaticUrlViewer o2) { - return o1.getContent().compareTo(o2.getContent()); - } - }); - -/* for (RuntimeEnvironmentConstraint rec : useCaseDescription.getREs()) { - final ExternalToolRuntimeEnvironmentViewer newView = new ExternalToolRuntimeEnvironmentViewer( - rec.getID(), rec.getRelation()); - runtimeEnvironmentViewList.add(newView); - } - Collections.sort(runtimeEnvironmentViewList, - new Comparator<ExternalToolRuntimeEnvironmentViewer>() { - - @Override - public int compare( - ExternalToolRuntimeEnvironmentViewer o1, - ExternalToolRuntimeEnvironmentViewer o2) { - return o1.getId().compareTo(o2.getId()); - } - });*/ - - scriptTextArea = new JTextPane(); - new LinePainter(scriptTextArea, LINE_COLOR); - - final KeywordDocument doc = new KeywordDocument( - new HashSet<String>()); - // NOTE: Due to T2-1145 - always set editor kit BEFORE setDocument - scriptTextArea.setEditorKit(new NoWrapEditorKit()); - scriptTextArea.setFont(new Font("Monospaced", Font.PLAIN, 14)); - scriptTextArea.setDocument(doc); - scriptTextArea.setText(useCaseDescription.getCommand()); - scriptTextArea.setCaretPosition(0); - scriptTextArea.setPreferredSize(new Dimension(200, 100)); - - tabbedPane.addTab("Command", new ScriptPanel(this, scriptTextArea, stdInCheckBox, stdOutCheckBox, stdErrCheckBox, returnCodesField)); - tabbedPane.addTab("String replacements", - new StringReplacementPanel(this, stringReplacementViewList)); - tabbedPane.addTab( - "File inputs", - new FilePanel(this, inputFileViewList, "To file", "File type", - "in", FILE_INPUT_DESCRIPTION, "Add file input")); - tabbedPane.addTab( - "File outputs", - new FilePanel(this, outputViewList, "From file", "File type", - "out", FILE_OUTPUT_DESCRIPTION, "Add file output")); - advancedPanel = new JPanel(); - advancedPanel.setLayout(new GridBagLayout()); - GridBagConstraints advancedConstraint = new GridBagConstraints(); - advancedConstraint.anchor = GridBagConstraints.FIRST_LINE_START; - advancedConstraint.gridx = 0; - advancedConstraint.gridy = 0; - - advancedConstraint.fill = GridBagConstraints.BOTH; - advancedConstraint.weighty = 0.1; - advancedConstraint.weightx = 0.1; - advancedTab = new JTabbedPane(); - advancedTab.addTab("Strings", new StaticStringPanel(staticStringViewList)); - advancedTab.addTab("URLs", new StaticUrlPanel(staticUrlViewList)); - advancedTab.addTab( - "File lists", - new FilePanel(this, fileListViewList, - "To file containing list", "Individual file type", - "in", FILE_LIST_DESCRIPTION, "Add file list")); - annotationPanel = new AnnotationPanel(nameField, descriptionArea, groupField); - advancedTab.addTab("Annotation", annotationPanel); - final ToolXMLPanel toolXMLPanel = new ToolXMLPanel(configuration.getUseCaseDescription()); - advancedTab.addTab("XML", toolXMLPanel); - advancedTab.addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - if (advancedTab.getSelectedComponent() == toolXMLPanel) { - toolXMLPanel.regenerateTree(makeConfiguration().getUseCaseDescription()); - } - }}); - tabbedPane.addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - if ((tabbedPane.getSelectedComponent() == advancedPanel) && - (advancedTab.getSelectedComponent() == toolXMLPanel)) { - toolXMLPanel.regenerateTree(makeConfiguration().getUseCaseDescription()); - } - } - - }); -/* advancedTab.addTab("Runtime environments", - createRuntimeEnvironmentPanel(runtimeEnvironmentViewList));*/ - advancedPanel.add(advancedTab, advancedConstraint); - tabbedPane.addTab("Advanced", advancedPanel); - } - invocationPanel = new InvocationPanel(configuration); - - tabbedPane.addTab("Location", invocationPanel); - if (isFromRepository()) { - tabbedPane.addTab("Edit", new EditablePanel(this)); - } - GridBagConstraints outerConstraint = new GridBagConstraints(); - outerConstraint.anchor = GridBagConstraints.FIRST_LINE_START; - outerConstraint.gridx = 0; - outerConstraint.gridy = 0; - - outerConstraint.fill = GridBagConstraints.BOTH; - outerConstraint.weighty = 0.1; - outerConstraint.weightx = 0.1; - add(tabbedPane, outerConstraint); - - setPreferredSize(new Dimension(700, 500)); - this.validate(); - } - - public void whenOpened() { - if (scriptTextArea != null) { - scriptTextArea.requestFocus(); - } - } - - private boolean isFromRepository() { - return (!this.configuration.isEdited() && isOriginallyFromRepository()); - } - - public boolean isOriginallyFromRepository() { - String repositoryUrl = this.configuration.getRepositoryUrl(); - return ((repositoryUrl != null) && !repositoryUrl - .isEmpty()); - - } - - - @Override - public ExternalToolActivityConfigurationBean getConfiguration() { - return configuration; - } - - public void refreshConfiguration( - ExternalToolActivityConfigurationBean config) { - int visibleTab = -1; - int secondaryTab = -1; - if (tabbedPane != null) { - visibleTab = tabbedPane.getSelectedIndex(); - if (tabbedPane.getSelectedComponent().equals(advancedTab)) { - secondaryTab = advancedTab.getSelectedIndex(); - } - } - this.removeAll(); - initialise(config); - if (visibleTab != -1) { - tabbedPane.setSelectedIndex(visibleTab); - } - if (secondaryTab != -1) { - advancedTab.setSelectedIndex(secondaryTab); - } - } - - public void showAnnotationPanel() { - tabbedPane.setSelectedComponent(advancedPanel); - advancedTab.setSelectedComponent(annotationPanel); - } - - @Override - public void refreshConfiguration() { - refreshConfiguration(activity.getConfiguration()); - } - - static Pattern tagPattern = Pattern.compile("%%([^%]*)%%"); - - @Override - /** - * Need to check that the script contains the string replacements and only them - done - * - * Need to check the input port names are valid and unique - done - * Need to check the output port names are valid and unique - done - * - * Need to check the input files and static files are unique - done - * Need to check the file names are valid - * Need to check the URLs are valid - * Need to check the replacement tags are unique - done - */ - public boolean checkValues() { - if (isFromRepository()) { - return true; - } - boolean result = true; - String text = ""; - Set<String> stringReplacementPortNames = new HashSet<String>(); - Set<String> stringReplacementTags = new HashSet<String>(); - for (ExternalToolStringReplacementViewer v : stringReplacementViewList) { - String name = v.getName(); - if (name.equalsIgnoreCase("stdin") || name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) { - text += "A string replacement port has a reserved name \"" + name + "\"\n"; - result = false; - } - else if (stringReplacementPortNames.contains(name)) { - text += "Two string replacement ports have the name \"" + name - + "\"\n"; - result = false; - } else if (!name.matches(VALID_NAME_REGEX)) { - text += "String replacement port name \"" + name - + "\" is invalid\n"; - result = false; - } else { - stringReplacementPortNames.add(name); - } - - String tag = v.getValue(); - if (stringReplacementTags.contains(tag)) { - text += "Two string replacement ports replace \"%%" + tag - + "%%\"\n"; - result = false; - } else if (!tag.matches(VALID_NAME_REGEX)) { - text += "String replacement tag \"%%" + tag - + "%%\" is invalid\n"; - result = false; - } else { - stringReplacementTags.add(tag); - } - } - - Matcher m = tagPattern.matcher(scriptTextArea.getText()); - Set<String> tags = new HashSet<String>(); - while (m.find()) { - String tag = m.group(1); - if (tag != null) { - if (tag.isEmpty()) { - text += "The command contains an empty tag i.e. %%%%\n"; - result = false; - } else { - if (!tag.matches(VALID_NAME_REGEX)) { - text += "The command contains an invalid tag \"%%" - + tag + "\"%%\n"; - result = false; - } - if (!stringReplacementTags.contains(tag)) { - text += "There is no string replacement for %%" + tag - + "%%\n"; - result = false; - } else { - tags.add(tag); - } - } - } - } - - for (String tag : stringReplacementTags) { - if (!tags.contains(tag)) { - text += "String replacement for %%" + tag - + "%% is not used in the command\n"; - result = false; - } - } - - Set<String> inputFilePortNames = new HashSet<String>(); - Set<String> inputFileNames = new HashSet<String>(); - for (ExternalToolFileViewer v : inputFileViewList) { - String name = v.getName(); - if (name.equalsIgnoreCase("stdin") || name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) { - text += "An input file port has a reserved name \"" + name + "\"\n"; - result = false; - } - else if (stringReplacementPortNames.contains(name)) { - text += "A string replacement port and an input file port have the name \"" - + name + "\"\n"; - result = false; - } else if (inputFilePortNames.contains(name)) { - text += "Two file input ports have the name \"" + name + "\"\n"; - result = false; - } else if (!name.matches(VALID_NAME_REGEX)) { - text += "File input port name \"" + name + "\" is invalid\n"; - result = false; - } else { - inputFilePortNames.add(name); - } - - String fileName = v.getValue(); - if (inputFileNames.contains(fileName)) { - text += "Two file inputs ports write to the same file \"" - + fileName + "\"\n"; - result = false; - } else { - inputFileNames.add(fileName); - } - } - - Set<String> fileListPortNames = new HashSet<String>(); - Set<String> fileListFileNames = new HashSet<String>(); - for (ExternalToolFileViewer v : fileListViewList) { - String name = v.getName(); - if (name.equalsIgnoreCase("stdin") || name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) { - text += "A file list port has a reserved name \"" + name + "\"\n"; - result = false; - } else if (stringReplacementPortNames.contains(name)) { - text += "A string replacement port and a file list port have the name \"" - + name + "\"\n"; - result = false; - } else if (inputFilePortNames.contains(name)) { - text += "A file input port and a file list port have the name \"" - + name + "\"\n"; - result = false; - } else if (fileListPortNames.contains(name)) { - text += "Two file list ports have the name \"" + name + "\"\n"; - result = false; - } else if (!name.matches(VALID_NAME_REGEX)) { - text += "File list port name \"" + name + "\" is invalid\n"; - result = false; - } else { - fileListPortNames.add(name); - } - - String fileName = v.getValue(); - if (fileListFileNames.contains(fileName)) { - text += "Two file list ports write to the same file \"" - + fileName + "\"\n"; - result = false; - } else if (inputFileNames.contains(fileName)) { - text += "A file input port and a file list port write to the same file \"" - + fileName + "\"\n"; - result = false; - } else { - fileListFileNames.add(fileName); - } - } - - Set<String> staticStringFileNames = new HashSet<String>(); - for (ExternalToolStaticStringViewer v : staticStringViewList) { - String fileName = v.getValue(); - if (staticStringFileNames.contains(fileName)) { - text += "Two static strings write to the same file \"" - + fileName + "\"\n"; - result = false; - } else if (inputFileNames.contains(fileName)) { - text += "A file input port and a static string write to the same file \"" - + fileName + "\"\n"; - result = false; - } else if (fileListFileNames.contains(fileName)) { - text += "A file list port and a static string write to the same file \"" - + fileName + "\"\n"; - result = false; - } else { - staticStringFileNames.add(fileName); - } - } - - Set<String> staticUrlFileNames = new HashSet<String>(); - for (ExternalToolStaticUrlViewer v : staticUrlViewList) { - String fileName = v.getValue(); - if (staticUrlFileNames.contains(fileName)) { - text += "Two static URLss write to the same file \"" + fileName - + "\"\n"; - result = false; - } else if (inputFileNames.contains(fileName)) { - text += "A file input port and a static URL write to the same file \"" - + fileName + "\"\n"; - result = false; - } else if (fileListFileNames.contains(fileName)) { - text += "A file list port and a static URL write to the same file \"" - + fileName + "\"\n"; - result = false; - } else if (staticStringFileNames.contains(fileName)) { - text += "A static string and a static URL write to the same file \"" - + fileName + "\"\n"; - result = false; - } else { - staticUrlFileNames.add(fileName); - } - } - Set<String> outputPortNames = new HashSet<String>(); - for (ExternalToolFileViewer v : outputViewList) { - String name = v.getName(); - if (name.equalsIgnoreCase("stdin") || name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) { - text += "An output port has a reserved name \"" + name + "\"\n"; - result = false; - } else if (outputPortNames.contains(name)) { - text += "Two output file ports have the name \"" + name - + "\"\n"; - result = false; - } else if (!name.matches(VALID_NAME_REGEX)) { - text += "Output file port name \"" + name + "\" is invalid\n"; - result = false; - } else { - outputPortNames.add(name); - } - } - if (!result) { - JOptionPane.showMessageDialog(this, text, "Problems", - JOptionPane.ERROR_MESSAGE); - } - return result; - } - - /** - * Check the proposed port name against the set of ports - * - * @return - */ - public boolean portNameExists(String name) { - if (name.equalsIgnoreCase("stdin") || name.equalsIgnoreCase("stdout") || name.equalsIgnoreCase("stderr")) { - return true; - } - - for (ExternalToolFileViewer v : inputFileViewList) { - if (name.equals(v.getName())) { - return true; - } - } - for (ExternalToolFileViewer v : fileListViewList) { - if (name.equals(v.getName())) { - return true; - } - } - for (ExternalToolStringReplacementViewer v : stringReplacementViewList) { - if (name.equals(v.getName())) { - return true; - } - } - for (ExternalToolFileViewer v : outputViewList) { - if (name.equals(v.getName())) { - return true; - } - } - return false; - } - - - public void setEditable(boolean editable, ExternalToolActivityConfigurationBean config) { - ExternalToolActivityConfigurationBean newConfig = (ExternalToolActivityConfigurationBean) cloneBean(config); - ExternalToolActivityHealthChecker.updateLocation(newConfig); - newConfig.setEdited(editable); - refreshConfiguration(newConfig); - } - - public void whenClosed() { - if (invocationPanel != null) { - invocationPanel.stopObserving(); - } - } - -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java deleted file mode 100644 index 11fb0c4..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolFileViewer.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.activities.externaltool.views; - -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JTextField; - -import de.uni_luebeck.inb.knowarc.usecases.ScriptInput; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser; -import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput; - -/** - * @author alanrw - * - */ -public class ExternalToolFileViewer { - - private JTextField nameField; - private String name; - private JTextField valueField; - private JCheckBox valueFromField; - private JComboBox typeSelector; - - public ExternalToolFileViewer(String name, String value, boolean isBinary) { - this(name); - nameField.setText(name); - if (!value.equals(name)) { - valueFromField.setSelected(false); - valueField.setText(value); - valueField.setEnabled(true); - } - if (isBinary) { - typeSelector.setSelectedItem("Binary"); - } else { - typeSelector.setSelectedItem("Text"); - } - } - - public ExternalToolFileViewer(final String name) { - this.name = name; - nameField = new JTextField(20); - valueField = new JTextField(20); - valueFromField = new JCheckBox(new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - if (valueFromField.isSelected()) { - valueField.setText(""); - valueField.setEnabled(false); - } else { - valueField.setText(getName()); - valueField.setEnabled(true); - } - }}); - valueFromField.setSelected(true); - valueField.setEnabled(false); - typeSelector = new JComboBox(new String[] {"Binary", "Text"}); - nameField.setText(name); - typeSelector.setSelectedItem("Text"); - - } - - public JTextField getNameField() { - return nameField; - } - - public JTextField getValueField() { - return valueField; - } - - public JComboBox getTypeSelector() { - return typeSelector; - } - - public String getName() { - return nameField.getText(); - } - - public boolean isBinary() { - return (typeSelector.getSelectedItem().equals("Binary")); - } - - public String getValue() { - if (valueFromField.isSelected()) { - return getName(); - } - return valueField.getText(); - } - - /** - * @return the valueFromField - */ - public JCheckBox getValueFromField() { - return valueFromField; - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java deleted file mode 100644 index 1451660..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolRuntimeEnvironmentViewer.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.activities.externaltool.views; - -import javax.swing.JComboBox; -import javax.swing.JTextField; - -import de.uni_luebeck.inb.knowarc.usecases.RuntimeEnvironmentConstraint; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInput; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser; -import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput; - -/** - * @author alanrw - * - */ -public class ExternalToolRuntimeEnvironmentViewer { - - private JTextField idField; - private JComboBox relationSelector; - - public ExternalToolRuntimeEnvironmentViewer(String id, String relation) { - this(id); - idField.setText(id); - relationSelector.setSelectedItem(relation); - } - - public ExternalToolRuntimeEnvironmentViewer(String id) { - this(); - idField.setText(id); - } - - public ExternalToolRuntimeEnvironmentViewer() { - idField = new JTextField(20); - relationSelector = new JComboBox(RuntimeEnvironmentConstraint.getAcceptedRelations()); - relationSelector.setSelectedItem(RuntimeEnvironmentConstraint.getDefaultRelation()); - } - - public JTextField getIdField() { - return idField; - } - - public JComboBox getRelationSelector() { - return relationSelector; - } - - public String getId() { - return idField.getText(); - } - - public String getRelation() { - return (String) relationSelector.getSelectedItem(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java deleted file mode 100644 index d82d9b7..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticStringViewer.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.activities.externaltool.views; - -import javax.swing.JTextArea; -import javax.swing.JTextField; - -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic; - -/** - * @author alanrw - * - */ -public class ExternalToolStaticStringViewer { - - ScriptInputStatic input; - private JTextArea contentField = new JTextArea(); - private JTextField valueField; - - - public ExternalToolStaticStringViewer(ScriptInputStatic input) { - this(); - this.input = input; - contentField.setText((String) input.getContent()); - valueField.setText(input.getTag()); - } - - public ExternalToolStaticStringViewer() { - contentField = new JTextArea(5, 40); - contentField.setText(""); - valueField = new JTextField(20); - valueField.setText(""); - } - - public String getContent() { - return contentField.getText(); - } - - public JTextArea getContentField() { - return contentField; - } - - - public JTextField getValueField() { - return valueField; - } - - public String getValue() { - return valueField.getText(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java deleted file mode 100644 index f7a1793..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStaticUrlViewer.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.activities.externaltool.views; - -import javax.swing.JComboBox; -import javax.swing.JTextArea; -import javax.swing.JTextField; - -import de.uni_luebeck.inb.knowarc.usecases.ScriptInput; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputStatic; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser; - -/** - * @author alanrw - * - */ -public class ExternalToolStaticUrlViewer { - - ScriptInputStatic input; - private JTextField contentField = new JTextField(); - private JTextField valueField; - - - public ExternalToolStaticUrlViewer(ScriptInputStatic input) { - this(); - this.input = input; - contentField.setText(input.getUrl()); - valueField.setText(input.getTag()); - } - - public ExternalToolStaticUrlViewer() { - contentField = new JTextField(40); - contentField.setText(""); - valueField = new JTextField(20); - valueField.setText(""); - } - - public String getContent() { - return contentField.getText(); - } - - public JTextField getContentField() { - return contentField; - } - - - public JTextField getValueField() { - return valueField; - } - - public String getValue() { - return valueField.getText(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java deleted file mode 100644 index 8e24183..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ExternalToolStringReplacementViewer.java +++ /dev/null @@ -1,97 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.activities.externaltool.views; - -import java.awt.event.ActionEvent; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.swing.AbstractAction; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JTextField; - -import de.uni_luebeck.inb.knowarc.usecases.ScriptInput; -import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser; - -/** - * @author alanrw - * - */ -public class ExternalToolStringReplacementViewer { - - private static Pattern p = Pattern.compile("\\w+"); - private static final String PERCENTS = "%%"; - ScriptInput input; - private JTextField nameField; - private String name; - private JTextField valueField; - private JCheckBox valueFromField; - - public ExternalToolStringReplacementViewer(String name, ScriptInputUser input) { - this(name); - this.input = input; - nameField.setText(name); - if (!input.getTag().equals(name)) { - valueFromField.setSelected(false); - valueField.setText(PERCENTS + input.getTag() + PERCENTS); - valueField.setEnabled(true); - } - } - - public ExternalToolStringReplacementViewer(String name) { - this.name = name; - nameField = new JTextField(20); - nameField.setText(name); - valueField = new JTextField(20); - valueFromField = new JCheckBox(new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - if (valueFromField.isSelected()) { - valueField.setText(""); - valueField.setEnabled(false); - } else { - valueField.setText(PERCENTS + getName() + PERCENTS); - valueField.setEnabled(true); - } - }}); - valueFromField.setSelected(true); - valueField.setEnabled(false); - } - - public JTextField getNameField() { - return nameField; - } - - public JTextField getValueField() { - return valueField; - } - - public String getName() { - return nameField.getText(); - } - - public String getValue() { - if (valueFromField.isSelected()) { - return getName(); - } - String enteredValue = valueField.getText(); - - Matcher m = p.matcher(enteredValue); - String result = ""; - if (m.find()) { - result = m.group(); - } - return result; - } - - /** - * @return the valueFromField - */ - public JCheckBox getValueFromField() { - return valueFromField; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java deleted file mode 100644 index 678711c..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/FilePanel.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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 net.sf.taverna.t2.activities.externaltool.utils.Tools; -import net.sf.taverna.t2.lang.ui.DeselectingButton; -import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea; - -/** - * @author alanrw - * - */ -public class FilePanel extends JPanel { - - private int outputGridy = 1; - private final ExternalToolConfigView view; - - public FilePanel(final ExternalToolConfigView view, - final List<ExternalToolFileViewer> viewList, - String fileHeader, String typeHeader, final String portPrefix, - final String description, String addText) { - super(); - this.view = view; - this.setLayout(new BorderLayout()); - final JPanel fileEditPanel = new JPanel(new GridBagLayout()); - - final GridBagConstraints fileConstraint = new GridBagConstraints(); - fileConstraint.insets = new Insets(5, 5, 5, 5); - fileConstraint.anchor = GridBagConstraints.FIRST_LINE_START; - fileConstraint.gridx = 0; - fileConstraint.gridy = 0; - fileConstraint.weightx = 0.1; - fileConstraint.fill = GridBagConstraints.BOTH; - - final String[] elementLabels = new String[] {"Taverna port name", - "Use port name for file", - fileHeader, - typeHeader - }; - - fileConstraint.gridx = 0; - synchronized (viewList) { - for (ExternalToolFileViewer outputView : viewList) { - addFileViewer(viewList, this, fileEditPanel, - outputView, elementLabels); - } - } - JButton addFilePortButton = new DeselectingButton(addText, - new AbstractAction() { - public void actionPerformed(ActionEvent e) { - - int portNumber = 1; - - String name2 = portPrefix + portNumber++; - boolean nameExists = true; - while (nameExists == true) { - nameExists = view.portNameExists(name2); - if (nameExists) { - name2 = portPrefix + portNumber++; - } - } - - ExternalToolFileViewer newViewer = new ExternalToolFileViewer( - name2); - synchronized (viewList) { - viewList.add(newViewer); - addFileViewer(viewList, FilePanel.this, fileEditPanel, - newViewer, elementLabels); - fileEditPanel.revalidate(); - fileEditPanel.repaint(); - } - } - - }); - JTextArea descriptionText = new ReadOnlyTextArea(description); - descriptionText.setEditable(false); - descriptionText.setFocusable(false); - descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5)); - - this.add(descriptionText, BorderLayout.NORTH); - - this.add(new JScrollPane(fileEditPanel), BorderLayout.CENTER); - - JPanel buttonPanel = new JPanel(new BorderLayout()); - - buttonPanel.add(addFilePortButton, BorderLayout.EAST); - - this.add(buttonPanel, BorderLayout.SOUTH); - - } - - private void addFileViewer(final List<ExternalToolFileViewer> viewList, - final JPanel outerPanel, final JPanel panel, - ExternalToolFileViewer viewer, String[] elementLabels) { - Tools.addViewer(panel, - elementLabels, - new JComponent[] {viewer.getNameField(), viewer.getValueFromField(), viewer.getValueField(), viewer.getTypeSelector()}, - viewList, - 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/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java deleted file mode 100644 index a3221ab..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/InvocationPanel.java +++ /dev/null @@ -1,396 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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.Box; -import javax.swing.BoxLayout; -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 net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean; -import net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker; -import net.sf.taverna.t2.activities.externaltool.configuration.ToolInvocationConfiguration; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroup; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupAddedEvent; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupRemovedEvent; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationManagerEvent; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismAddedEvent; -import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismRemovedEvent; -import net.sf.taverna.t2.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 net.sf.taverna.t2.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/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java deleted file mode 100644 index 7f0d82f..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/LoadDescriptionAction.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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 net.sf.taverna.t2.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/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java deleted file mode 100644 index 31266b4..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/SaveDescriptionAction.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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 net.sf.taverna.t2.lang.ui.ExtensionFileFilter; -import net.sf.taverna.t2.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/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java deleted file mode 100644 index bf902d7..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/ScriptPanel.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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 net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean; -import net.sf.taverna.t2.lang.ui.DeselectingButton; -import net.sf.taverna.t2.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/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java deleted file mode 100644 index 885cab5..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticStringPanel.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; - -import net.sf.taverna.t2.activities.externaltool.utils.Tools; -import net.sf.taverna.t2.lang.ui.DeselectingButton; -import net.sf.taverna.t2.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/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java ---------------------------------------------------------------------- diff --git a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java b/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java deleted file mode 100644 index ba441f4..0000000 --- a/taverna-external-tool-activity-ui/src/main/java/net/sf/taverna/t2/activities/externaltool/views/StaticUrlPanel.java +++ /dev/null @@ -1,108 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.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.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; - -import net.sf.taverna.t2.activities.externaltool.utils.Tools; -import net.sf.taverna.t2.lang.ui.DeselectingButton; -import net.sf.taverna.t2.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); - } - - -}
