http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationPanel.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationPanel.java b/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationPanel.java deleted file mode 100644 index 1229d57..0000000 --- a/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationPanel.java +++ /dev/null @@ -1,582 +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.workbench.httpproxy.config; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.CENTER; -import static java.awt.GridBagConstraints.HORIZONTAL; -import static java.awt.GridBagConstraints.NONE; -import static java.awt.GridBagConstraints.WEST; -import static javax.swing.JOptionPane.showMessageDialog; -import static javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; -import static javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED; -import static net.sf.taverna.t2.workbench.helper.Helper.showHelp; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.PROXY_USE_OPTION; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.SYSTEM_NON_PROXY_HOSTS; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.SYSTEM_PROXY_HOST; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.SYSTEM_PROXY_PASSWORD; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.SYSTEM_PROXY_PORT; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.SYSTEM_PROXY_USER; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.TAVERNA_NON_PROXY_HOSTS; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.TAVERNA_PROXY_HOST; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.TAVERNA_PROXY_PASSWORD; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.TAVERNA_PROXY_PORT; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.TAVERNA_PROXY_USER; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.USE_NO_PROXY_OPTION; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.USE_SPECIFIED_VALUES_OPTION; -import static uk.org.taverna.configuration.proxy.HttpProxyConfiguration.USE_SYSTEM_PROPERTIES_OPTION; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.AbstractAction; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; - -import net.sf.taverna.t2.lang.ui.DialogTextArea; -import uk.org.taverna.configuration.proxy.HttpProxyConfiguration; - -/** - * The HttpProxyConfigurationPanel provides the user interface to a - * {@link HttpProxyConfiguration} to determine how HTTP Connections are made by - * Taverna. - * - * @author alanrw - * @author David Withers - */ -public class HttpProxyConfigurationPanel extends JPanel { - static final long serialVersionUID = 3668473431971125038L; - /** - * The size of the field for the JTextFields. - */ - private static int TEXTFIELD_SIZE = 25; - - private final HttpProxyConfiguration httpProxyConfiguration; - /** - * RadioButtons that are in a common ButtonGroup. Selecting one of them - * indicates whether the system http proxy settings, the ad hoc specified - * values or no proxy settings at all should be used. - */ - private JRadioButton useSystemProperties; - private JRadioButton useSpecifiedValues; - private JRadioButton useNoProxy; - /** - * JTextFields and one DialogTextArea to hold the settings for the HTTP - * proxy properties. The values are only editable if the user picks - * useSpecifiedValues. - */ - private JTextField proxyHostField; - private JTextField proxyPortField; - private JTextField proxyUserField; - private JTextField proxyPasswordField; - private DialogTextArea nonProxyHostsArea; - private JScrollPane nonProxyScrollPane; - /** - * A string that indicates which HTTP setting option the user has currently - * picked. This does not necesarily match that which has been applied. - */ - private String shownOption = USE_SYSTEM_PROPERTIES_OPTION; - - /** - * The HttpProxyConfigurationPanel consists of a set of properties where the - * configuration values for HTTP can be specified and a set of buttons where - * the more general apply, help etc. appear. - */ - public HttpProxyConfigurationPanel( - HttpProxyConfiguration httpProxyConfiguration) { - this.httpProxyConfiguration = httpProxyConfiguration; - initComponents(); - } - - /** - * Populates the panel with a representation of the current HTTP proxy - * settings for the specified {@link HttpProxyConfiguration} and also the - * capability to alter them. - */ - private void initComponents() { - shownOption = httpProxyConfiguration.getProperty(PROXY_USE_OPTION); - - this.setLayout(new GridBagLayout()); - - GridBagConstraints gbc = new GridBagConstraints(); - - // Title describing what kind of settings we are configuring here - JTextArea descriptionText = new JTextArea("HTTP proxy configuration"); - descriptionText.setLineWrap(true); - descriptionText.setWrapStyleWord(true); - descriptionText.setEditable(false); - descriptionText.setFocusable(false); - descriptionText.setBorder(new EmptyBorder(10, 10, 10, 10)); - gbc.anchor = WEST; - gbc.gridx = 0; - gbc.gridy = 0; - gbc.gridwidth = 2; - gbc.weightx = 1.0; - gbc.weighty = 0.0; - gbc.fill = HORIZONTAL; - this.add(descriptionText, gbc); - - /** - * Generate the three radio buttons and put them in a group. Each button - * is bound to an action that alters the shownOption and re-populates - * the shown HTTP property fields. - */ - useNoProxy = new JRadioButton("Do not use a proxy"); - useNoProxy.setAlignmentX(LEFT_ALIGNMENT); - gbc.gridx = 0; - gbc.gridy = 1; - gbc.gridwidth = 2; - gbc.weightx = 0.0; - gbc.weighty = 0.0; - gbc.fill = NONE; - gbc.insets = new Insets(10, 0, 0, 0); - this.add(useNoProxy, gbc); - ActionListener useNoProxyListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent arg0) { - shownOption = USE_NO_PROXY_OPTION; - populateFields(); - } - }; - useNoProxy.addActionListener(useNoProxyListener); - - useSystemProperties = new JRadioButton("Use system properties"); - useSystemProperties.setAlignmentX(LEFT_ALIGNMENT); - gbc.gridx = 0; - gbc.gridy = 2; - gbc.insets = new Insets(0, 0, 0, 0); - this.add(useSystemProperties, gbc); - ActionListener systemPropertiesListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent arg0) { - shownOption = USE_SYSTEM_PROPERTIES_OPTION; - populateFields(); - } - }; - useSystemProperties.addActionListener(systemPropertiesListener); - - useSpecifiedValues = new JRadioButton("Use specified values"); - useSpecifiedValues.setAlignmentX(LEFT_ALIGNMENT); - gbc.gridx = 0; - gbc.gridy = 3; - this.add(useSpecifiedValues, gbc); - ActionListener specifiedValuesListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent arg0) { - shownOption = USE_SPECIFIED_VALUES_OPTION; - populateFields(); - } - }; - useSpecifiedValues.addActionListener(specifiedValuesListener); - - ButtonGroup bg = new ButtonGroup(); - bg.add(useSystemProperties); - bg.add(useSpecifiedValues); - bg.add(useNoProxy); - - /** - * Create the fields to show the HTTP proxy property values. These - * become editable if the shown option is to use specified values. - */ - proxyHostField = new JTextField(TEXTFIELD_SIZE); - gbc.gridx = 0; - gbc.gridy = 4; - gbc.gridwidth = 1; - gbc.fill = NONE; - gbc.insets = new Insets(10, 0, 0, 0); - this.add(new JLabel("Proxy host"), gbc); - gbc.gridx = 1; - gbc.gridy = 4; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - this.add(proxyHostField, gbc); - - proxyPortField = new JTextField(TEXTFIELD_SIZE); - gbc.gridx = 0; - gbc.gridy = 5; - gbc.gridwidth = 1; - gbc.fill = NONE; - gbc.insets = new Insets(0, 0, 0, 0); - this.add(new JLabel("Proxy port"), gbc); - gbc.gridx = 1; - gbc.gridy = 5; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - this.add(proxyPortField, gbc); - - proxyUserField = new JTextField(TEXTFIELD_SIZE); - gbc.gridx = 0; - gbc.gridy = 6; - gbc.gridwidth = 1; - gbc.fill = NONE; - this.add(new JLabel("Proxy user"), gbc); - gbc.gridx = 1; - gbc.gridy = 6; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - this.add(proxyUserField, gbc); - - proxyPasswordField = new JTextField(TEXTFIELD_SIZE); - gbc.gridx = 0; - gbc.gridy = 7; - gbc.gridwidth = 1; - gbc.fill = NONE; - this.add(new JLabel("Proxy password"), gbc); - gbc.gridx = 1; - gbc.gridy = 7; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - this.add(proxyPasswordField, gbc); - - nonProxyHostsArea = new DialogTextArea(10, 40); - nonProxyScrollPane = new JScrollPane(nonProxyHostsArea); - nonProxyScrollPane - .setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_AS_NEEDED); - nonProxyScrollPane - .setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_AS_NEEDED); - // nonProxyScrollPane.setPreferredSize(new Dimension(300, 500)); - gbc.gridx = 0; - gbc.gridy = 8; - gbc.gridwidth = 2; - gbc.fill = NONE; - gbc.insets = new Insets(10, 0, 0, 0); - this.add(new JLabel("Non-proxy hosts"), gbc); - gbc.gridx = 0; - gbc.gridy = 9; - gbc.weightx = 1.0; - gbc.weighty = 1.0; - gbc.gridwidth = 2; - gbc.insets = new Insets(0, 0, 0, 0); - gbc.fill = BOTH; - this.add(nonProxyScrollPane, gbc); - - // Add buttons panel - gbc.gridx = 0; - gbc.gridy = 10; - gbc.weightx = 0.0; - gbc.weighty = 0.0; - gbc.gridwidth = 2; - gbc.fill = HORIZONTAL; - gbc.anchor = CENTER; - gbc.insets = new Insets(10, 0, 0, 0); - this.add(createButtonPanel(), gbc); - - setFields(); - } - - /** - * Populate the fields in the property panel according to which option is - * being shown and the stored values within the - * {@link HttpProxyConfiguration}. - */ - private void populateFields() { - /** - * Editing of the property fields is only available when the option is - * to use the specified values. - */ - boolean editingEnabled = shownOption - .equals(USE_SPECIFIED_VALUES_OPTION); - - if (shownOption.equals(USE_SYSTEM_PROPERTIES_OPTION)) { - proxyHostField.setText(httpProxyConfiguration - .getProperty(SYSTEM_PROXY_HOST)); - proxyPortField.setText(httpProxyConfiguration - .getProperty(SYSTEM_PROXY_PORT)); - proxyUserField.setText(httpProxyConfiguration - .getProperty(SYSTEM_PROXY_USER)); - proxyPasswordField.setText(httpProxyConfiguration - .getProperty(SYSTEM_PROXY_PASSWORD)); - nonProxyHostsArea.setText(httpProxyConfiguration - .getProperty(SYSTEM_NON_PROXY_HOSTS)); - } else if (shownOption.equals(USE_SPECIFIED_VALUES_OPTION)) { - proxyHostField.setText(httpProxyConfiguration - .getProperty(TAVERNA_PROXY_HOST)); - proxyPortField.setText(httpProxyConfiguration - .getProperty(TAVERNA_PROXY_PORT)); - proxyUserField.setText(httpProxyConfiguration - .getProperty(TAVERNA_PROXY_USER)); - proxyPasswordField.setText(httpProxyConfiguration - .getProperty(TAVERNA_PROXY_PASSWORD)); - nonProxyHostsArea.setText(httpProxyConfiguration - .getProperty(TAVERNA_NON_PROXY_HOSTS)); - } else { - proxyHostField.setText(null); - proxyPortField.setText(null); - proxyUserField.setText(null); - proxyPasswordField.setText(null); - nonProxyHostsArea.setText(null); - } - - proxyHostField.setEnabled(editingEnabled); - proxyPortField.setEnabled(editingEnabled); - proxyUserField.setEnabled(editingEnabled); - proxyPasswordField.setEnabled(editingEnabled); - nonProxyHostsArea.setEnabled(editingEnabled); - nonProxyHostsArea.setEditable(editingEnabled); - nonProxyScrollPane.setEnabled(editingEnabled); - } - - /** - * Create the panel to contain the buttons - * - * @return - */ - @SuppressWarnings("serial") - private JPanel createButtonPanel() { - final JPanel panel = new JPanel(); - - /** - * The helpButton shows help about the current component - */ - JButton helpButton = new JButton(new AbstractAction("Help") { - @Override - public void actionPerformed(ActionEvent arg0) { - showHelp(panel); - } - }); - panel.add(helpButton); - - /** - * The resetButton changes the property values shown to those - * corresponding to the configuration currently applied. - */ - JButton resetButton = new JButton(new AbstractAction("Reset") { - @Override - public void actionPerformed(ActionEvent arg0) { - setFields(); - } - }); - panel.add(resetButton); - - /** - * The applyButton applies the shown field values to the - * {@link HttpProxyConfiguration} and saves them for future. - */ - JButton applyButton = new JButton(new AbstractAction("Apply") { - @Override - public void actionPerformed(ActionEvent arg0) { - applySettings(); - setFields(); - } - }); - panel.add(applyButton); - - return panel; - } - - /** - * Checks that the specified values for the HTTP properties are a valid - * combination and, if so, saves them for future use. It does not apply them - * to the currently executing Taverna. - */ - private void saveSettings() { - if (useSystemProperties.isSelected()) { - httpProxyConfiguration.setProperty(PROXY_USE_OPTION, - USE_SYSTEM_PROPERTIES_OPTION); - } else if (useNoProxy.isSelected()) { - httpProxyConfiguration.setProperty(PROXY_USE_OPTION, - USE_NO_PROXY_OPTION); - } else { - if (validateFields()) { - httpProxyConfiguration.setProperty(PROXY_USE_OPTION, - USE_SPECIFIED_VALUES_OPTION); - httpProxyConfiguration.setProperty(TAVERNA_PROXY_HOST, - proxyHostField.getText()); - httpProxyConfiguration.setProperty(TAVERNA_PROXY_PORT, - proxyPortField.getText()); - httpProxyConfiguration.setProperty(TAVERNA_PROXY_USER, - proxyUserField.getText()); - httpProxyConfiguration.setProperty(TAVERNA_PROXY_PASSWORD, - proxyPasswordField.getText()); - httpProxyConfiguration.setProperty(TAVERNA_NON_PROXY_HOSTS, - nonProxyHostsArea.getText()); - } - } - } - - /** - * Validates and, where appropriate formats, the properties values specified - * for HTTP Proxy configuration. - * - * @return - */ - private boolean validateFields() { - boolean result = true; - result = result && validateHostField(); - result = result && validatePortField(); - result = result && validateUserField(); - result = result && validatePasswordField(); - result = result && validateNonProxyHostsArea(); - return result; - } - - /** - * Checks that, if a value is specified for non-proxy hosts then a proxy - * host has also been specified. Formats the non-proxy hosts string so that - * if the user has entered the hosts on separate lines, then the stored - * values are separated by bars. - * - * @return - */ - private boolean validateNonProxyHostsArea() { - boolean result = true; - String value = nonProxyHostsArea.getText(); - if ((value != null) && (!value.equals(""))) { - value = value.replaceAll("\\n", "|"); - nonProxyHostsArea.setText(value); - result = result - && dependsUpon("non-proxy host", "host", - proxyHostField.getText()); - } - return result; - } - - /** - * Checks that, if a password has been specified, then a user has also been - * specified. - * - * @return - */ - private boolean validatePasswordField() { - boolean result = true; - String value = proxyPasswordField.getText(); - if ((value != null) && !value.isEmpty()) - result = result - && dependsUpon("password", "user", proxyHostField.getText()); - return result; - } - - /** - * Checks that if a user has been specified, then a host has also been - * specified. - * - * @return - */ - private boolean validateUserField() { - boolean result = true; - String value = proxyUserField.getText(); - if ((value != null) && !value.isEmpty()) - result = result - && dependsUpon("user", "host", proxyHostField.getText()); - return result; - } - - /** - * Checks that if a port has been specified then a host has also been - * specified. Checks that the port number is a non-negative integer. If the - * port has not been specified, then if a host has been specified, the - * default value 80 is used. - * - * @return - */ - private boolean validatePortField() { - boolean result = true; - String value = proxyPortField.getText(); - if ((value != null) && (!value.equals(""))) { - result = result - && dependsUpon("port", "host", proxyHostField.getText()); - try { - int parsedNumber = Integer.parseInt(value); - if (parsedNumber <= 0) { - showMessageDialog(this, "The port must be non-negative"); - result = false; - } - } catch (NumberFormatException e) { - showMessageDialog(this, "The port must be an integer"); - result = false; - } - } else { - String hostField = proxyHostField.getText(); - if ((hostField != null) && !hostField.isEmpty()) - proxyPortField.setText("80"); - } - return result; - } - - /** - * Checks if the targetValue has been specified. If not then a message is - * displayed indicating that the dependent cannot be specified with the - * target. - * - * @param dependent - * @param target - * @param targetValue - * @return - */ - private boolean dependsUpon(String dependent, String target, - String targetValue) { - boolean result = true; - if ((targetValue == null) || target.equals("")) { - showMessageDialog(this, "A " + dependent - + " cannot be specified without a " + target); - result = false; - } - return result; - } - - /** - * Could validate the host field e.g. by establishing a connection. - * Currently no validation is done. - * - * @return - */ - private boolean validateHostField() { - boolean result = true; - // String value = proxyHostField.getText(); - return result; - } - - /** - * Save the currently set field values (if valid) to the - * {@link HttpProxyConfiguration}. Also applies those values to the - * currently running Taverna. - */ - private void applySettings() { - if (validateFields()) { - saveSettings(); - httpProxyConfiguration.changeProxySettings(); - } - } - - /** - * Set the shown field values to those currently in use (i.e. last saved - * configuration). - */ - private void setFields() { - shownOption = httpProxyConfiguration.getProperty(PROXY_USE_OPTION); - useSystemProperties.setSelected(shownOption - .equals(USE_SYSTEM_PROPERTIES_OPTION)); - useSpecifiedValues.setSelected(shownOption - .equals(USE_SPECIFIED_VALUES_OPTION)); - useNoProxy.setSelected(shownOption.equals(USE_NO_PROXY_OPTION)); - populateFields(); - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationUIFactory.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationUIFactory.java b/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationUIFactory.java deleted file mode 100644 index 9f6ac8c..0000000 --- a/taverna-workbench-httpproxy-config/src/main/java/net/sf/taverna/t2/workbench/httpproxy/config/HttpProxyConfigurationUIFactory.java +++ /dev/null @@ -1,56 +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.workbench.httpproxy.config; - -import javax.swing.JPanel; - -import uk.org.taverna.configuration.Configurable; -import uk.org.taverna.configuration.ConfigurationUIFactory; -import uk.org.taverna.configuration.proxy.HttpProxyConfiguration; - -/** - * A Factory to create a HttpProxyConfiguration - * - * @author alanrw - * @author David Withers - */ -public class HttpProxyConfigurationUIFactory implements ConfigurationUIFactory { - private HttpProxyConfiguration httpProxyConfiguration; - - @Override - public boolean canHandle(String uuid) { - return uuid.equals(getConfigurable().getUUID()); - } - - @Override - public JPanel getConfigurationPanel() { - return new HttpProxyConfigurationPanel(httpProxyConfiguration); - } - - @Override - public Configurable getConfigurable() { - return httpProxyConfiguration; - } - - public void setHttpProxyConfiguration(HttpProxyConfiguration httpProxyConfiguration) { - this.httpProxyConfiguration = httpProxyConfiguration; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-httpproxy-config/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory ---------------------------------------------------------------------- diff --git a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory b/taverna-workbench-httpproxy-config/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory deleted file mode 100644 index d87772b..0000000 --- a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.configuration.ConfigurationUIFactory +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.workbench.httpproxy.config.HttpProxyConfigurationUIFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context-osgi.xml b/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context-osgi.xml deleted file mode 100644 index 631bdb4..0000000 --- a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context-osgi.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:beans="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/osgi - http://www.springframework.org/schema/osgi/spring-osgi.xsd"> - - <service ref="HttpProxyConfigurationUIFactory" interface="uk.org.taverna.configuration.ConfigurationUIFactory" /> - - <reference id="httpProxyConfiguration" interface="uk.org.taverna.configuration.proxy.HttpProxyConfiguration" /> - -</beans:beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context.xml b/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context.xml deleted file mode 100644 index 6d6060f..0000000 --- a/taverna-workbench-httpproxy-config/src/main/resources/META-INF/spring/httpproxy-config-context.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd"> - - <bean id="HttpProxyConfigurationUIFactory" class="net.sf.taverna.t2.workbench.httpproxy.config.HttpProxyConfigurationUIFactory"> - <property name="httpProxyConfiguration" ref="httpProxyConfiguration" /> - </bean> - -</beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/pom.xml b/taverna-workbench-iteration-strategy-ui/pom.xml deleted file mode 100644 index 0b6ff81..0000000 --- a/taverna-workbench-iteration-strategy-ui/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>net.sf.taverna.t2</groupId> - <artifactId>ui-components</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.taverna.t2.ui-components</groupId> - <artifactId>iteration-strategy-ui</artifactId> - <packaging>bundle</packaging> - <name>Menu generation API</name> - <description>An SPI system for building UI menues</description> - <dependencies> - <dependency> - <groupId>net.sf.taverna.t2.core</groupId> - <artifactId>workflowmodel-api</artifactId> - <version>${t2.core.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.lang</groupId> - <artifactId>ui</artifactId> - <version>${t2.lang.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>workbench-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>contextual-views-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>edits-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>file-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>helper-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.core</groupId> - <artifactId>workflowmodel-impl</artifactId> - <version>${t2.core.version}</version> - <!-- <scope>test</scope> --> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/IterationStrategyIcons.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/IterationStrategyIcons.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/IterationStrategyIcons.java deleted file mode 100644 index 350c0cc..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/IterationStrategyIcons.java +++ /dev/null @@ -1,48 +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.workbench.iterationstrategy; - -import javax.swing.ImageIcon; - -import org.apache.log4j.Logger; - -public class IterationStrategyIcons { - - private static Logger logger = Logger - .getLogger(IterationStrategyIcons.class); - - public static ImageIcon joinIteratorIcon, lockStepIteratorIcon, - leafnodeicon; - - static { - try { - Class<?> c = IterationStrategyIcons.class; - joinIteratorIcon = new ImageIcon(c - .getResource("icons/crossproducticon.png")); - lockStepIteratorIcon = new ImageIcon(c - .getResource("icons/dotproducticon.png")); - leafnodeicon = new ImageIcon(c - .getResource("icons/leafnodeicon.png")); - } catch (Exception ex) { - logger.warn("Could not find icon", ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyConfigurationDialog.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyConfigurationDialog.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyConfigurationDialog.java deleted file mode 100644 index 1af83cb..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyConfigurationDialog.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.workbench.iterationstrategy.contextview; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Frame; -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JButton; -import javax.swing.JDialog; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; -import net.sf.taverna.t2.workbench.iterationstrategy.editor.IterationStrategyEditorControl; -import net.sf.taverna.t2.workflowmodel.Edit; -import net.sf.taverna.t2.workflowmodel.EditException; -import net.sf.taverna.t2.workflowmodel.Edits; -import net.sf.taverna.t2.workflowmodel.Processor; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategyStack; - -import org.apache.log4j.Logger; - -/** - * @author alanrw - * - */ -@SuppressWarnings("serial") -public class IterationStrategyConfigurationDialog extends HelpEnabledDialog { - - private static Logger logger = Logger - .getLogger(IterationStrategyConfigurationDialog.class); - - private final EditManager editManager; - private final FileManager fileManager; - - - private final Frame owner; - private final Processor processor; - private final IterationStrategyStack originalStack; - - private IterationStrategyStack workingStack; - - public IterationStrategyConfigurationDialog(Frame owner, Processor processor, IterationStrategyStack iStack, EditManager editManager, FileManager fileManager) { - super (owner, "List handling for " + processor.getLocalName(), true, null); - this.owner = owner; - this.processor = processor; - this.originalStack = iStack; - this.editManager = editManager; - this.fileManager = fileManager; - this.workingStack = IterationStrategyContextualView.copyIterationStrategyStack(originalStack); - IterationStrategy iterationStrategy = IterationStrategyContextualView.getIterationStrategy(workingStack); - IterationStrategyEditorControl iterationStrategyEditorControl = new IterationStrategyEditorControl( - iterationStrategy); - this.add(iterationStrategyEditorControl, BorderLayout.CENTER); - - JPanel buttonPanel = new JPanel(); - buttonPanel.setLayout(new FlowLayout()); - - JButton okButton = new JButton(new OKAction(this)); - buttonPanel.add(okButton); - - JButton resetButton = new JButton(new ResetAction( - iterationStrategyEditorControl)); - buttonPanel.add(resetButton); - - JButton cancelButton = new JButton(new CancelAction(this)); - buttonPanel.add(cancelButton); - - this.add(buttonPanel, BorderLayout.SOUTH); - this.pack(); - this.setSize(new Dimension(getPreferredSize().width, getPreferredSize().height > 400 ? 400 : getPreferredSize().height)); - } - - private final class OKAction extends AbstractAction { - private final JDialog dialog; - - private OKAction(JDialog dialog) { - super("OK"); - this.dialog = dialog; - } - - public void actionPerformed(ActionEvent e) { - Edits edits = editManager.getEdits(); - try { - Edit<?> edit = edits.getSetIterationStrategyStackEdit( - processor, - IterationStrategyContextualView.copyIterationStrategyStack(workingStack)); - editManager.doDataflowEdit( - fileManager.getCurrentDataflow(), edit); - dialog.setVisible(false); - } catch (RuntimeException ex) { - logger.warn("Could not set list handling", ex); - JOptionPane.showMessageDialog(owner, - "Can't set list handling", - "An error occured when setting list handling: " - + ex.getMessage(), - JOptionPane.ERROR_MESSAGE); - } catch (EditException ex) { - logger.warn("Could not set list handling", ex); - JOptionPane.showMessageDialog(owner, - "Can't set list handling", - "An error occured when setting list handling: " - + ex.getMessage(), - JOptionPane.ERROR_MESSAGE); - } - } - } - - private final class ResetAction extends AbstractAction { - private final IterationStrategyEditorControl strategyEditorControl; - - private ResetAction( - IterationStrategyEditorControl strategyEditorControl) { - super("Reset"); - this.strategyEditorControl = strategyEditorControl; - } - - public void actionPerformed(ActionEvent e) { - workingStack = IterationStrategyContextualView.copyIterationStrategyStack(originalStack); - strategyEditorControl - .setIterationStrategy(IterationStrategyContextualView.getIterationStrategy(workingStack)); - } - - } - - private final class CancelAction extends AbstractAction { - private final JDialog dialog; - - private CancelAction(JDialog dialog) { - super("Cancel"); - this.dialog = dialog; - } - - public void actionPerformed(ActionEvent e) { - dialog.setVisible(false); - } - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualView.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualView.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualView.java deleted file mode 100644 index 369bea4..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualView.java +++ /dev/null @@ -1,231 +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.workbench.iterationstrategy.contextview; - -import java.awt.Frame; -import java.awt.event.ActionEvent; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JComponent; - -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; -import net.sf.taverna.t2.workbench.iterationstrategy.editor.IterationStrategyTree; -import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView; -import net.sf.taverna.t2.workflowmodel.Processor; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategyStack; -import net.sf.taverna.t2.workflowmodel.processor.iteration.impl.IterationStrategyImpl; -import net.sf.taverna.t2.workflowmodel.processor.iteration.impl.IterationStrategyStackImpl; - -import org.apache.log4j.Logger; -import org.jdom.Content; -import org.jdom.Element; -import org.jdom.filter.ElementFilter; - -/** - * Contextual view of an {@link IterationStrategyStack}. - * - * @author Stian Soiland-Reyes - * - */ -public class IterationStrategyContextualView extends ContextualView { - - private static Logger logger = Logger - .getLogger(IterationStrategyContextualView.class); - - private EditManager editManager; - - private FileManager fileManager; - - private IterationStrategyStack iterationStack; - - private final Processor processor; - - private IterationStrategyTree strategyTree = new IterationStrategyTree(); - - static { - -// This should be enabled and modified for T2-822 -/* editManager.addObserver(new Observer<EditManagerEvent> () { - - private void examineEdit(Edit edit) { - if (edit instanceof ConnectDatalinkEdit) { - processConnectDatalinkEdit((ConnectDatalinkEdit) edit); - } - if (edit instanceof CompoundEdit) { - processCompoundEdit((CompoundEdit) edit); - } - } - - private void processConnectDatalinkEdit(ConnectDatalinkEdit edit) { - Datalink d = ((ConnectDatalinkEdit) edit).getSubject(); - EventHandlingInputPort sink = d.getSink(); - if (sink instanceof ProcessorInputPort) { - ProcessorInputPort pip = (ProcessorInputPort) sink; - Processor p = pip.getProcessor(); - final HelpEnabledDialog dialog = new IterationStrategyConfigurationDialog(null, p, copyIterationStrategyStack(p.getIterationStrategy())); - dialog.setVisible(true); - } - } - - private void processCompoundEdit(CompoundEdit edit) { - for (Edit e : edit.getChildEdits()) { - examineEdit(e); - } - } - - @Override - public void notify(Observable<EditManagerEvent> sender, - EditManagerEvent message) throws Exception { - if (!(message instanceof DataflowEditEvent)) { - return; - } - examineEdit(message.getEdit()); - }});*/ - } - - public IterationStrategyContextualView(Processor processor, EditManager editManager, FileManager fileManager) { - if (processor == null || processor.getIterationStrategy() == null) { - throw new NullPointerException( - "Iteration strategy stack can't be null"); - } - this.processor = processor; - this.editManager = editManager; - this.fileManager = fileManager; - refreshIterationStrategyStack(); - initView(); - } - - @Override - public Action getConfigureAction(final Frame owner) { - return new ConfigureIterationStrategyAction(owner); - } - - public Processor getProcessor() { - return processor; - } - - @Override - public void refreshView() { - refreshIterationStrategyStack(); - strategyTree.setIterationStrategy(getIterationStrategy(iterationStack)); - } - - public static IterationStrategyStack copyIterationStrategyStack( - IterationStrategyStack stack) { - Element asXML = ((IterationStrategyStackImpl)stack).asXML(); - stripEmptyElements(asXML); - IterationStrategyStackImpl copyStack = new IterationStrategyStackImpl(); - copyStack.configureFromElement(asXML); - if (copyStack.getStrategies().isEmpty()) { - copyStack.addStrategy(new IterationStrategyImpl()); - } - return copyStack; - } - - private static void stripEmptyElements(Element asXML) { - int childCount = asXML.getContent().size(); - int index = 0; - while (index < childCount) { - Content child = asXML.getContent(index); - if (child instanceof Element) { - Element childElement = (Element) child; - if (childElement.getName().equals("port")) { - index++; - } - else if (childElement.getDescendants(new ElementFilter("port")).hasNext()) { - stripEmptyElements(childElement); - index++; - } else { - asXML.removeContent(childElement); - childCount--; - } - } - } - } - - public static IterationStrategy getIterationStrategy(IterationStrategyStack iStack) { - List<? extends IterationStrategy> strategies = iStack - .getStrategies(); - if (strategies.isEmpty()) { - throw new IllegalStateException("Empty iteration stack"); - } - IterationStrategy strategy = strategies.get(0); - if (!(strategy instanceof IterationStrategyImpl)) { - throw new IllegalStateException( - "Can't edit unknown iteration strategy implementation " - + strategy); - } - return (IterationStrategyImpl) strategy; - } - - private void refreshIterationStrategyStack() { - IterationStrategyStack originalIterationStrategy = processor - .getIterationStrategy(); - if (!(originalIterationStrategy instanceof IterationStrategyStackImpl)) { - throw new IllegalStateException( - "Unknown iteration strategy implementation " - + originalIterationStrategy); - } - this.iterationStack = copyIterationStrategyStack((IterationStrategyStackImpl) originalIterationStrategy); - } - - @Override - public JComponent getMainFrame() { - refreshView(); - return strategyTree; - } - - @Override - public String getViewTitle() { - return "List handling"; - } - - private final class ConfigureIterationStrategyAction extends AbstractAction { - private final Frame owner; - - private ConfigureIterationStrategyAction(Frame owner) { - super("Configure"); - this.owner = owner; - } - - public void actionPerformed(ActionEvent e) { - final HelpEnabledDialog dialog = new IterationStrategyConfigurationDialog(owner, processor, iterationStack, editManager, fileManager); - dialog.setVisible(true); - refreshView(); - } - - - - } - - @Override - public int getPreferredPosition() { - return 200; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualViewFactory.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualViewFactory.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualViewFactory.java deleted file mode 100644 index a970239..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/contextview/IterationStrategyContextualViewFactory.java +++ /dev/null @@ -1,54 +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.workbench.iterationstrategy.contextview; - -import java.util.Arrays; -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.EditManager; -import net.sf.taverna.t2.workbench.file.FileManager; -import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView; -import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory; -import net.sf.taverna.t2.workflowmodel.Processor; - -public class IterationStrategyContextualViewFactory implements - ContextualViewFactory<Processor> { - - private EditManager editManager; - private FileManager fileManager; - - public boolean canHandle(Object selection) { - return selection instanceof Processor; - } - - public List<ContextualView> getViews(Processor p) { - return Arrays.asList(new ContextualView[] {new IterationStrategyContextualView(p, editManager, fileManager)}); - } - - public void setEditManager(EditManager editManager) { - this.editManager = editManager; - } - - public void setFileManager(FileManager fileManager) { - this.fileManager = fileManager; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyCellRenderer.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyCellRenderer.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyCellRenderer.java deleted file mode 100644 index 4c31574..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyCellRenderer.java +++ /dev/null @@ -1,74 +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.workbench.iterationstrategy.editor; - -import java.awt.Component; - -import javax.swing.JTree; -import javax.swing.tree.DefaultTreeCellRenderer; - -import net.sf.taverna.t2.workbench.icons.WorkbenchIcons; -import net.sf.taverna.t2.workbench.iterationstrategy.IterationStrategyIcons; -import net.sf.taverna.t2.workflowmodel.processor.iteration.CrossProduct; -import net.sf.taverna.t2.workflowmodel.processor.iteration.DotProduct; -import net.sf.taverna.t2.workflowmodel.processor.iteration.NamedInputPortNode; - -import org.apache.log4j.Logger; - -@SuppressWarnings("serial") -final class IterationStrategyCellRenderer extends DefaultTreeCellRenderer { - - @SuppressWarnings("unused") - private static Logger logger = Logger - .getLogger(IterationStrategyCellRenderer.class); - - @Override - public Component getTreeCellRendererComponent(JTree tree, Object value, - boolean selected, boolean expanded, boolean leaf, int row, - boolean hasFocus) { - super.getTreeCellRendererComponent(tree, value, selected, expanded, - leaf, row, hasFocus); - if (value instanceof CrossProduct) { - setIcon(IterationStrategyIcons.joinIteratorIcon); - setText("Cross product"); - } else if (value instanceof DotProduct) { - setIcon(IterationStrategyIcons.lockStepIteratorIcon); - setText("Dot product"); - } else if (value instanceof NamedInputPortNode) { - setIcon(IterationStrategyIcons.leafnodeicon); - NamedInputPortNode namedInput = (NamedInputPortNode) value; - setText(namedInput.getPortName()); - } else { - setText("List handling"); - if (!leaf){ - if (expanded) { - setIcon(WorkbenchIcons.folderOpenIcon); - } else { - setIcon(WorkbenchIcons.folderClosedIcon); - } - } - } - return this; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditor.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditor.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditor.java deleted file mode 100644 index add5201..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditor.java +++ /dev/null @@ -1,247 +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.workbench.iterationstrategy.editor; - -import java.awt.GraphicsEnvironment; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -//import java.awt.image.BufferedImage; -import java.io.IOException; - -import javax.swing.DropMode; -import javax.swing.JComponent; -import javax.swing.JTree; -import javax.swing.TransferHandler; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - -import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI; -import net.sf.taverna.t2.workflowmodel.processor.iteration.AbstractIterationStrategyNode; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy; -import net.sf.taverna.t2.workflowmodel.processor.iteration.NamedInputPortNode; -import net.sf.taverna.t2.workflowmodel.processor.iteration.TerminalNode; - -import org.apache.log4j.Logger; - -@SuppressWarnings("serial") -public class IterationStrategyEditor extends IterationStrategyTree implements - UIComponentSPI { - - private static Logger logger = Logger - .getLogger(IterationStrategyEditor.class); - - //private BufferedImage imgGhost; // The 'drag image' - - // mouse was clicked - - public IterationStrategyEditor() { - super(); - // Make this a drag source - if (!GraphicsEnvironment.isHeadless()) { - this.setDragEnabled(true); - this.setDropMode(DropMode.ON_OR_INSERT); - this.setTransferHandler(new TreeTransferHandler()); - this.getSelectionModel().setSelectionMode( - TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); - expandTree(); - } - - // - } - - public IterationStrategyEditor(IterationStrategy theStrategy) { - this(); - setIterationStrategy(theStrategy); - } - - /** - * - * This code is freely adapted from code derived - * - */ - class TreeTransferHandler extends TransferHandler { - DataFlavor nodesFlavor; - DataFlavor[] flavors = new DataFlavor[1]; - - public TreeTransferHandler() { - getNodesFlavor(); - } - - private DataFlavor getNodesFlavor() { - if (nodesFlavor == null) { - try { - nodesFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + - ";class=" + AbstractIterationStrategyNode.class.getName(), - "AbstractIterationStrategyNode", - this.getClass().getClassLoader()); - flavors[0] = nodesFlavor; - } catch(Exception e) { - logger.error("Problem creating nodesFlavor:" + e); - } - } - return nodesFlavor; - } - - public boolean canImport(TransferHandler.TransferSupport support) { - if(!support.isDrop()) { - logger.error("isDrop not supported"); - return false; - } - - if(!support.isDataFlavorSupported(getNodesFlavor())) { - logger.info("Not correct flavor"); - return false; - } - // Do not allow a drop on the drag source selections. - JTree.DropLocation dl = - (JTree.DropLocation)support.getDropLocation(); - TreePath dest = dl.getPath(); - AbstractIterationStrategyNode destination = - (AbstractIterationStrategyNode)dest.getLastPathComponent(); - Transferable t = support.getTransferable(); - if (destination instanceof TerminalNode) { - return false; - } - try { - AbstractIterationStrategyNode node = (AbstractIterationStrategyNode) t.getTransferData(getNodesFlavor()); - if (node.isNodeDescendant(destination)) { - return false; - } - } catch (UnsupportedFlavorException e) { - return false; - } catch (IOException e) { - return false; - } -// JTree tree = (JTree) support.getComponent(); -// int dropRow = tree.getRowForPath(dl.getPath()); -// int selRow = tree.getLeadSelectionRow(); -// if (selRow == dropRow) { -// logger.info("Dragging to source"); -// return false; -// -// } - support.setShowDropLocation(true); - return true; - } - - protected Transferable createTransferable(JComponent c) { - JTree tree = (JTree)c; - TreePath[] paths = tree.getSelectionPaths(); - if(paths != null) { - AbstractIterationStrategyNode node = - (AbstractIterationStrategyNode)paths[0].getLastPathComponent(); - return new NodeTransferable(node); - } - return null; - } - - protected void exportDone(JComponent source, Transferable data, int action) { - } - - public int getSourceActions(JComponent c) { - return MOVE; - } - - public boolean importData(TransferHandler.TransferSupport support) { - if(!canImport(support)) { - logger.info("Cannot import"); - return false; - } - // Extract transfer data. - AbstractIterationStrategyNode node = null; - try { - Transferable t = support.getTransferable(); - node = (AbstractIterationStrategyNode) t.getTransferData(getNodesFlavor()); - } catch(UnsupportedFlavorException ufe) { - logger.error("UnsupportedFlavor", ufe); - } catch (Exception e) { - logger.error("Problem getting transfer data", e); - } - - // Get drop location info. - JTree.DropLocation dl = - (JTree.DropLocation)support.getDropLocation(); - int childIndex = dl.getChildIndex(); - TreePath dest = dl.getPath(); - AbstractIterationStrategyNode parent = - (AbstractIterationStrategyNode)dest.getLastPathComponent(); - int index = childIndex; - logger.info ("parent is a " + parent.getClass().getName()); - if (parent instanceof NamedInputPortNode) { - AbstractIterationStrategyNode sibling = parent; - parent = (AbstractIterationStrategyNode) sibling.getParent(); - index = parent.getIndex(sibling); - } else if (index == -1) { - index = parent.getChildCount(); - } - if (parent instanceof TerminalNode) { - if (parent.getChildCount() > 0) { - parent = (AbstractIterationStrategyNode) parent.getChildAt(0); - index = parent.getChildCount(); - } - - } - logger.info("parent is a " + parent.getClass().getName()); - - try { - // The parent insert removes from the oldParent - parent.insert(node, index++); - DefaultTreeModel model = IterationStrategyEditor.this - .getModel(); - refreshModel(); - } catch (IllegalStateException e) { - logger.error(e); - } catch (IllegalArgumentException e) { - logger.error(e); - } - return true; - } - - public String toString() { - return getClass().getName(); - } - - public class NodeTransferable implements Transferable { - AbstractIterationStrategyNode node; - - public NodeTransferable(AbstractIterationStrategyNode node) { - this.node = node; - } - - public AbstractIterationStrategyNode getTransferData(DataFlavor flavor) - throws UnsupportedFlavorException { - if(!isDataFlavorSupported(flavor)) - throw new UnsupportedFlavorException(flavor); - return node; - } - - public DataFlavor[] getTransferDataFlavors() { - return flavors; - } - - public boolean isDataFlavorSupported(DataFlavor flavor) { - return getNodesFlavor().equals(flavor); - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditorControl.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditorControl.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditorControl.java deleted file mode 100644 index c745283..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyEditorControl.java +++ /dev/null @@ -1,439 +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 - ******************************************************************************/ -/** - * This file is a component of the Taverna project, - * and is licensed under the GNU LGPL. - * Copyright Tom Oinn, EMBL-EBI - */ -package net.sf.taverna.t2.workbench.iterationstrategy.editor; - -import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.BoxLayout; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JToolBar; -import javax.swing.SwingConstants; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; - -import net.sf.taverna.t2.workbench.icons.WorkbenchIcons; -import net.sf.taverna.t2.workbench.iterationstrategy.IterationStrategyIcons; -import net.sf.taverna.t2.workflowmodel.processor.iteration.CrossProduct; -import net.sf.taverna.t2.workflowmodel.processor.iteration.DotProduct; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategyNode; -import net.sf.taverna.t2.workflowmodel.processor.iteration.TerminalNode; - -import org.apache.log4j.Logger; - -/** - * A control panel for the iteration tree editor allowing the user to manipulate - * the tree, removing and adding nodes into the tree based on the context. - * - * @author Tom Oinn - * @author Stian Soiland-Reyes - * - */ -@SuppressWarnings("serial") -public class IterationStrategyEditorControl extends JPanel { - - protected static Set<IterationStrategyNode> descendentsOfNode( - IterationStrategyNode node) { - Set<IterationStrategyNode> descendants = new HashSet<IterationStrategyNode>(); - Set<IterationStrategyNode> nodesToVisit = new HashSet<IterationStrategyNode>(); - Set<IterationStrategyNode> visitedNodes = new HashSet<IterationStrategyNode>(); - - // Note: Not added to descendants - nodesToVisit.add(node); - while (!nodesToVisit.isEmpty()) { - // pick the first one - IterationStrategyNode visiting = nodesToVisit.iterator().next(); - visitedNodes.add(visiting); - nodesToVisit.remove(visiting); - - // Find new and interesting children - List<IterationStrategyNode> children = visiting.getChildren(); - Set<IterationStrategyNode> newNodes = new HashSet<IterationStrategyNode>( - children); - newNodes.removeAll(visitedNodes); - - descendants.addAll(newNodes); - nodesToVisit.addAll(newNodes); - } - return descendants; - } - - private static Logger logger = Logger - .getLogger(IterationStrategyEditorControl.class); - - private IterationStrategyNode selectedNode = null; - - private IterationStrategyTree tree; - - protected AddCrossAction addCross = new AddCrossAction(); - protected AddDotAction addDot = new AddDotAction(); - protected ChangeAction change = new ChangeAction(); - protected NormalizeAction normalize = new NormalizeAction(); - protected RemoveAction remove = new RemoveAction(); - protected MoveUpAction moveUp = new MoveUpAction(); - - //private static final int ICON_SIZE = 15; - - protected ImageIcon arrowUpIcon = WorkbenchIcons.upArrowIcon; - protected ImageIcon arrowDownIcon = WorkbenchIcons.downArrowIcon; - //protected ImageIcon arrowLeft = WorkbenchIcons.leftArrowIcon; - //protected ImageIcon arrowRight = WorkbenchIcons.rightArrowIcon; - protected ImageIcon normalizeIcon = WorkbenchIcons.normalizeIcon; - - private final IterationStrategy strategy; - - /** - * Create a new panel from the supplied iteration strategy - */ - public IterationStrategyEditorControl(IterationStrategy strategy) { - - this.strategy = strategy; - setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); - - // Create the components - tree = new IterationStrategyEditor(strategy); - - JButton addCrossButton = new JButton(addCross); - addCrossButton.setHorizontalAlignment(SwingConstants.LEFT); - JButton addDotButton = new JButton(addDot); - addDotButton.setHorizontalAlignment(SwingConstants.LEFT); - JButton normalizeButton = new JButton(normalize); - normalizeButton.setHorizontalAlignment(SwingConstants.LEFT); - normalizeButton.setIcon(normalizeIcon); - JButton removeButton = new JButton(remove); - removeButton.setHorizontalAlignment(SwingConstants.LEFT); - JButton changeButton = new JButton(change); - changeButton.setHorizontalAlignment(SwingConstants.LEFT); - - JButton moveUpButton = new JButton(moveUp); - moveUpButton.setIcon(arrowUpIcon); - moveUpButton.setHorizontalAlignment(SwingConstants.LEFT); - - // Set the default enabled state to off on all buttons other than the - // normalizeButton - // one. - disableButtons(); - - // Create a layout with the tree on the right and the buttons in a grid - // layout on the left - JToolBar toolbar = new JToolBar(); - toolbar.setFloatable(false); - toolbar.setRollover(true); - // toolbar.setLayout(new GridLayout(2,2)); - toolbar.add(normalizeButton); - toolbar.add(addCrossButton); - toolbar.add(addDotButton); - toolbar.add(removeButton); - toolbar.add(changeButton); - toolbar.add(moveUpButton); - - toolbar.setAlignmentX(LEFT_ALIGNMENT); - - // Listen to tree selection events and enable buttons appropriately - tree.addTreeSelectionListener(new ButtonEnabler()); - - // Add components to the control panel - add(toolbar); - JScrollPane treePane = new JScrollPane(tree); - //treePane.setPreferredSize(new Dimension(0, 0)); - add(treePane); - } - - public void setIterationStrategy(IterationStrategy iterationStrategy) { - tree.setIterationStrategy(iterationStrategy); - disableButtons(); - selectNode(null); - } - - private void disableButtons() { - remove.setEnabled(false); - addCross.setEnabled(false); - addDot.setEnabled(false); - change.setEnabled(false); - } - - private IterationStrategyNode findRoot() { - IterationStrategyNode root = (IterationStrategyNode) tree.getModel() - .getRoot(); - if (root.getChildCount() > 0) { - return root.getChildAt(0); - } - return root; - } - - protected void selectNode(TreeNode newNode) { - DefaultTreeModel model = tree.getModel(); - if (newNode == null) { - newNode = (TreeNode) model.getRoot(); - } - TreeNode[] pathToRoot = model.getPathToRoot(newNode); - tree.setSelectionPath(new TreePath(pathToRoot)); - } - - /** - * Add a cross product node as a child of the selected node - */ - protected class AddCrossAction extends AbstractAction { - - public AddCrossAction() { - super("Add Cross", IterationStrategyIcons.joinIteratorIcon); - } - - public void actionPerformed(ActionEvent e) { - CrossProduct newNode = new CrossProduct(); - newNode.setParent(selectedNode); - tree.refreshModel(); - } - } - - /** - * Add a dot product node as a child of the selected node - * - * @author Stian Soiland-Reyes - * - */ - protected class AddDotAction extends AbstractAction { - - public AddDotAction() { - super("Add Dot", IterationStrategyIcons.lockStepIteratorIcon); - } - - public void actionPerformed(ActionEvent e) { - DotProduct newNode = new DotProduct(); - newNode.setParent(selectedNode); - tree.refreshModel(); - } - } - - protected class ButtonEnabler implements TreeSelectionListener { - public void valueChanged(TreeSelectionEvent e) { - TreePath selectedPath = e.getPath(); - IterationStrategyNode selectedObject = (IterationStrategyNode) selectedPath - .getLastPathComponent(); - selectedNode = selectedObject; - if (selectedObject instanceof CrossProduct - || selectedObject instanceof DotProduct) { - if ((selectedObject.getParent() == null) || (selectedObject.getParent() instanceof TerminalNode)) { - remove.setEnabled(false); - } else { - remove.setEnabled(true); - } - if (selectedObject instanceof CrossProduct) { - change.putValue(Action.NAME, "Change to Dot Product"); - change.putValue(Action.SMALL_ICON, - IterationStrategyIcons.lockStepIteratorIcon); - } else { - change.putValue(Action.NAME, "Change to Cross Product"); - change.putValue(Action.SMALL_ICON, - IterationStrategyIcons.joinIteratorIcon); - } - addCross.setEnabled(true); - addDot.setEnabled(true); - change.setEnabled(true); - } else { - // Top- or leaf node - remove.setEnabled(false); - addCross.setEnabled(false); - addDot.setEnabled(false); - change.setEnabled(false); - } - } - } - - /** - * Add a cross product node as a child of the selected node - */ - protected class ChangeAction extends AbstractAction { - - public ChangeAction() { - super("Switch to...", IterationStrategyIcons.joinIteratorIcon); - } - - public void actionPerformed(ActionEvent e) { - IterationStrategyNode newNode; - if (selectedNode instanceof CrossProduct) { - newNode = new DotProduct(); - } else { - newNode = new CrossProduct(); - } - - List<IterationStrategyNode> children = new ArrayList<IterationStrategyNode>( - selectedNode.getChildren()); - for (IterationStrategyNode child : children) { - child.setParent(newNode); - } - - DefaultTreeModel model = tree.getModel(); - if (selectedNode.getParent() == null) { - model.setRoot(newNode); - tree.refreshModel(); - newNode.setParent(null); - } else { - IterationStrategyNode parent = selectedNode.getParent(); - int index = parent.getIndex(selectedNode); - selectedNode.setParent(null); - parent.insert(newNode, index); - tree.refreshModel(); - } - - selectNode(newNode); - } - - } - - /** - * Normalize the tree when the button is pressed - * - */ - protected class NormalizeAction extends AbstractAction { - public NormalizeAction() { - super("Normalize", normalizeIcon); - } - - public void actionPerformed(ActionEvent e) { - strategy.normalize(); - // Expand all the nodes in the tree - //DefaultTreeModel model = tree.getModel(); - tree.refreshModel(); - } - } - - /** - * Remove the selected node, moving any descendant leaf nodes to the parent - * to prevent them getting lost - */ - protected class RemoveAction extends AbstractAction { - public RemoveAction() { - super("Remove node", WorkbenchIcons.deleteIcon); - } - - public void actionPerformed(ActionEvent e) { - IterationStrategyNode nodeToBeRemoved = selectedNode; - - //DefaultTreeModel model = tree.getModel(); - - // Now removeButton the candidate nodes from their parents and - // put them back into the root node - IterationStrategyNode root = findRoot(); - if (root == selectedNode) { - return; - } - IterationStrategyNode oldParent = nodeToBeRemoved.getParent(); - - for (IterationStrategyNode nodeToMove : descendentsOfNode(nodeToBeRemoved)) { - nodeToMove.setParent(oldParent); - } - nodeToBeRemoved.setParent(null); - tree.refreshModel(); - // Disable the various buttons, as the current selection - // is now invalid. - remove.setEnabled(false); - addCross.setEnabled(false); - addDot.setEnabled(false); - change.setEnabled(false); - selectNode(oldParent); - } - } - - protected class MoveUpAction extends AbstractAction { - - public MoveUpAction() { - super("Move up", arrowUpIcon); - } - - public void actionPerformed(ActionEvent e) { - //DefaultTreeModel model = tree.getModel(); - - IterationStrategyNode aboveNode = aboveSelectedNode(); - if ((aboveNode == null) || ((aboveNode instanceof TerminalNode) && (aboveNode.getChildCount() > 0))) { - logger.warn("Can't move above top"); - return; - } - IterationStrategyNode selectedParent = selectedNode.getParent(); - IterationStrategyNode aboveParent = aboveNode.getParent(); - if (selectedParent != null && selectedParent.equals(aboveParent)) { - // Siblings - int aboveChildIndex = selectedParent.getIndex(aboveNode); - selectedParent.insert(selectedNode, aboveChildIndex); - tree.refreshModel(); - selectNode(selectedNode); - } else if (aboveNode.equals(selectedParent)) { - if (aboveParent instanceof TerminalNode - && selectedNode.getAllowsChildren()) { - aboveNode.setParent(selectedNode); - selectedNode.setParent(aboveParent); - tree.refreshModel(); - selectNode(selectedNode); - } else if (!(aboveParent instanceof TerminalNode)){ - int aboveChildIndex = aboveParent.getIndex(aboveNode); - aboveParent.insert(selectedNode, aboveChildIndex); - tree.refreshModel(); - selectNode(selectedNode); - } - } else { - - } - - } - - } - - protected IterationStrategyNode belowSelectedNode() { - return offsetFromSelectedNode(1); - } - - protected IterationStrategyNode offsetFromSelectedNode(int offset) { - int currentRow = tree.getRowForPath(tree.getSelectionPath()); - int offsetRow = currentRow + offset; - TreePath offsetPath = tree.getPathForRow(offsetRow); - if (offsetPath == null) { - return null; - } - IterationStrategyNode offsetNode = (IterationStrategyNode) offsetPath - .getLastPathComponent(); - if (offsetNode == tree.getModel().getRoot()) { - return null; - } - return offsetNode; - } - - protected IterationStrategyNode aboveSelectedNode() { - return offsetFromSelectedNode(-1); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyTree.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyTree.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyTree.java deleted file mode 100644 index c4665c6..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/editor/IterationStrategyTree.java +++ /dev/null @@ -1,106 +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.workbench.iterationstrategy.editor; - -import java.util.Enumeration; - -import javax.swing.ImageIcon; -import javax.swing.JTree; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - -import net.sf.taverna.t2.workbench.iterationstrategy.IterationStrategyIcons; -import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI; -import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy; - -@SuppressWarnings("serial") -public class IterationStrategyTree extends JTree implements UIComponentSPI { - - private IterationStrategy strategy = null; - - public IterationStrategyTree() { - super(); - setCellRenderer(new IterationStrategyCellRenderer()); - } - - public ImageIcon getIcon() { - return IterationStrategyIcons.leafnodeicon; - } - - public void onDisplay() { - // TODO Auto-generated method stub - - } - - public void onDispose() { - this.strategy = null; - setModel(null); - } - - public synchronized void setIterationStrategy( - IterationStrategy theStrategy) { - if (theStrategy != this.strategy) { - this.strategy = theStrategy; - TreeNode terminal = theStrategy.getTerminalNode(); - setModel(new DefaultTreeModel(terminal)); - this.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - expandTree(); - revalidate(); - } - } - - protected synchronized void refreshModel() { - this.getModel().nodeStructureChanged(strategy.getTerminalNode()); - expandTree(); - } - - @Override - public DefaultTreeModel getModel() { - return (DefaultTreeModel) super.getModel(); - } - - @Override - public void setModel(TreeModel newModel) { - if (newModel != null && !(newModel instanceof DefaultTreeModel)) { - throw new IllegalArgumentException( - "Model must be a DefaultTreeModel"); - } - super.setModel(newModel); - } - - protected void expandTree() { - DefaultMutableTreeNode root = - (DefaultMutableTreeNode)this.getModel().getRoot(); - Enumeration e = root.breadthFirstEnumeration(); - while(e.hasMoreElements()) { - DefaultMutableTreeNode node = - (DefaultMutableTreeNode)e.nextElement(); - if(node.isLeaf()) continue; - int row = this.getRowForPath(new TreePath(node.getPath())); - this.expandRow(row); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/menu/IterationStrategyConfigureMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/menu/IterationStrategyConfigureMenuAction.java b/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/menu/IterationStrategyConfigureMenuAction.java deleted file mode 100644 index f8c7f73..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/java/net/sf/taverna/t2/workbench/iterationstrategy/menu/IterationStrategyConfigureMenuAction.java +++ /dev/null @@ -1,65 +0,0 @@ -/********************************************************************** - * Copyright (C) 2007-2009 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - **********************************************************************/ -package net.sf.taverna.t2.workbench.iterationstrategy.menu; - -import java.awt.event.ActionEvent; -import java.net.URI; - -import javax.swing.AbstractAction; -import javax.swing.Action; - -import net.sf.taverna.t2.ui.menu.AbstractContextualMenuAction; -import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; -import net.sf.taverna.t2.workbench.iterationstrategy.contextview.IterationStrategyConfigurationDialog; -import net.sf.taverna.t2.workbench.iterationstrategy.contextview.IterationStrategyContextualView; -import net.sf.taverna.t2.workflowmodel.Processor; - -public class IterationStrategyConfigureMenuAction extends AbstractContextualMenuAction { - - - - public static final URI configureRunningSection = URI - .create("http://taverna.sf.net/2009/contextMenu/configureRunning"); - - private static final URI ITERATION_STRATEGY_CONFIGURE_URI = URI - .create("http://taverna.sf.net/2008/t2workbench/iterationStrategyConfigure"); - - public IterationStrategyConfigureMenuAction() { - super(configureRunningSection, 40, ITERATION_STRATEGY_CONFIGURE_URI); - } - - @SuppressWarnings("serial") - @Override - protected Action createAction() { - return new AbstractAction("List handling...") { - public void actionPerformed(ActionEvent e) { - Processor p = (Processor) getContextualSelection().getSelection(); - final HelpEnabledDialog dialog = new IterationStrategyConfigurationDialog(null, p, IterationStrategyContextualView.copyIterationStrategyStack(p.getIterationStrategy())); - dialog.setVisible(true); - } - }; - } - - public boolean isEnabled() { - return super.isEnabled() && (getContextualSelection().getSelection() instanceof Processor); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent deleted file mode 100644 index 6f25f4e..0000000 --- a/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.workbench.iterationstrategy.menu.IterationStrategyConfigureMenuAction \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory ---------------------------------------------------------------------- diff --git a/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-workbench-iteration-strategy-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory deleted file mode 100644 index a6a27b0..0000000 --- a/taverna-workbench-iteration-strategy-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.workbench.iterationstrategy.contextview.IterationStrategyContextualViewFactory
