http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/actions/RestoreDefaultServicesAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/actions/RestoreDefaultServicesAction.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/actions/RestoreDefaultServicesAction.java deleted file mode 100644 index c7071ed..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/actions/RestoreDefaultServicesAction.java +++ /dev/null @@ -1,50 +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.ui.servicepanel.actions; - -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; - -import net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; - -@SuppressWarnings("serial") -public class RestoreDefaultServicesAction extends AbstractAction { - private final ServiceDescriptionRegistry serviceDescriptionRegistry; - - public RestoreDefaultServicesAction( - ServiceDescriptionRegistry serviceDescriptionRegistry) { - super("Restore default service providers"); - this.serviceDescriptionRegistry = serviceDescriptionRegistry; - } - - @Override - public void actionPerformed(ActionEvent e) { - for (ServiceDescriptionProvider provider : serviceDescriptionRegistry - .getDefaultServiceDescriptionProviders()) { - if (!(provider instanceof ConfigurableServiceProvider)) - continue; - serviceDescriptionRegistry.addServiceDescriptionProvider(provider); - } - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigPanel.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigPanel.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigPanel.java deleted file mode 100644 index f666877..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigPanel.java +++ /dev/null @@ -1,181 +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.ui.servicepanel.config; - -import static java.awt.GridBagConstraints.HORIZONTAL; -import static java.awt.GridBagConstraints.NONE; -import static java.awt.GridBagConstraints.WEST; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; - -import javax.swing.AbstractAction; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JPanel; -import javax.swing.JTextArea; -import javax.swing.border.EmptyBorder; - -import net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionsConfiguration; -import net.sf.taverna.t2.workbench.helper.Helper; - -@SuppressWarnings("serial") -public class ServiceDescriptionConfigPanel extends JPanel { - private static final String REMOVE_PERMANENTLY = "Allow permanent removal of default service providers"; - private static final String INCLUDE_DEFAULTS = "Include default service providers"; - - private final ServiceDescriptionsConfiguration config; - private JCheckBox includeDefaults; - private JCheckBox removePermanently; - private final ServiceDescriptionRegistry serviceDescRegistry; - - public ServiceDescriptionConfigPanel(ServiceDescriptionsConfiguration config, - ServiceDescriptionRegistry serviceDescRegistry) { - super(new GridBagLayout()); - this.config = config; - this.serviceDescRegistry = serviceDescRegistry; - initialize(); - } - - private void initialize() { - removeAll(); - - GridBagConstraints gbc = new GridBagConstraints(); - - // Title describing what kind of settings we are configuring here - JTextArea descriptionText = new JTextArea( - "Configure behaviour of default service providers in Service Panel"); - descriptionText.setLineWrap(true); - descriptionText.setWrapStyleWord(true); - descriptionText.setEditable(false); - descriptionText.setFocusable(false); - descriptionText.setBorder(new EmptyBorder(10, 10, 10, 10)); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.anchor = WEST; - gbc.fill = HORIZONTAL; - add(descriptionText, gbc); - - includeDefaults = new JCheckBox(INCLUDE_DEFAULTS); - gbc.gridx = 0; - gbc.gridy = 1; - gbc.anchor = WEST; - gbc.fill = NONE; - gbc.insets = new Insets(10, 0, 0, 0); - add(includeDefaults, gbc); - - removePermanently = new JCheckBox(REMOVE_PERMANENTLY); - gbc.gridx = 0; - gbc.gridy = 2; - gbc.insets = new Insets(0, 0, 0, 0); - add(removePermanently, gbc); - - // Filler - gbc.gridx = 0; - gbc.gridy = 3; - gbc.weighty = 1; - gbc.weightx = 1; - gbc.fill = GridBagConstraints.BOTH; - gbc.insets = new Insets(10, 0, 0, 0); - add(createButtonPanel(), gbc); - - setFields(config); - } - - /** - * Create the panel to contain the buttons - * - * @return - */ - 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) { - Helper.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(config); - } - }); - 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(config); - } - }); - panel.add(applyButton); - - return panel; - } - - protected void applySettings() { - // Include default service providers - config.setIncludeDefaults(includeDefaults.isSelected()); - for (ServiceDescriptionProvider provider : serviceDescRegistry - .getDefaultServiceDescriptionProviders()) { - if (! (provider instanceof ConfigurableServiceProvider)) - continue; - if (config.isIncludeDefaults()) - serviceDescRegistry.addServiceDescriptionProvider(provider); - else - serviceDescRegistry.removeServiceDescriptionProvider(provider); - } - - // Allow permanent removal of default service providers - config.setRemovePermanently(removePermanently.isSelected()); - } - - /** - * Set the shown configuration field values to those currently in use - * (i.e. last saved configuration). - * - */ - private void setFields(ServiceDescriptionsConfiguration configurable) { - includeDefaults.setSelected(configurable.isIncludeDefaults()); - removePermanently.setSelected(configurable.isRemovePermanently()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigUIFactory.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigUIFactory.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigUIFactory.java deleted file mode 100644 index 8746b54..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/config/ServiceDescriptionConfigUIFactory.java +++ /dev/null @@ -1,57 +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.ui.servicepanel.config; - -import javax.swing.JPanel; - -import uk.org.taverna.configuration.Configurable; -import uk.org.taverna.configuration.ConfigurationUIFactory; - -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionsConfiguration; - -public class ServiceDescriptionConfigUIFactory implements ConfigurationUIFactory { - private ServiceDescriptionsConfiguration serviceDescriptionsConfiguration; - private ServiceDescriptionRegistry serviceDescriptionRegistry; - - @Override - public boolean canHandle(String uuid) { - return uuid.equals(serviceDescriptionsConfiguration.getUUID()); - } - - @Override - public Configurable getConfigurable() { - return serviceDescriptionsConfiguration; - } - - @Override - public JPanel getConfigurationPanel() { - return new ServiceDescriptionConfigPanel(serviceDescriptionsConfiguration, serviceDescriptionRegistry); - } - - public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) { - this.serviceDescriptionRegistry = serviceDescriptionRegistry; - } - - public void setServiceDescriptionsConfiguration(ServiceDescriptionsConfiguration serviceDescriptionsConfiguration) { - this.serviceDescriptionsConfiguration = serviceDescriptionsConfiguration; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/menu/AddServiceProviderMenu.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/menu/AddServiceProviderMenu.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/menu/AddServiceProviderMenu.java deleted file mode 100644 index f975778..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/menu/AddServiceProviderMenu.java +++ /dev/null @@ -1,113 +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.ui.servicepanel.menu; - -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.JButton; -import javax.swing.JPopupMenu; - -import net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescription; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry; -import net.sf.taverna.t2.workbench.ui.servicepanel.ServicePanel; -import net.sf.taverna.t2.workbench.ui.servicepanel.actions.AddServiceProviderAction; - -/** - * A menu that provides a set up menu actions for adding new service providers - * to the Service Panel. - * <p> - * The Actions are discovered from the {@link ServiceDescriptionProvider}s found - * through the SPI. - * - * @author Stuart Owen - * @author Stian Soiland-Reyes - * @author Alan R Williams - * - * @see ServiceDescription - * @see ServicePanel - * @see ServiceDescriptionRegistry#addServiceDescriptionProvider(ServiceDescriptionProvider) - */ -@SuppressWarnings("serial") -public class AddServiceProviderMenu extends JButton { - public static class ServiceProviderComparator implements - Comparator<ServiceDescriptionProvider> { - @Override - public int compare(ServiceDescriptionProvider o1, - ServiceDescriptionProvider o2) { - return o1.getName().toLowerCase().compareTo( - o2.getName().toLowerCase()); - } - } - - private final static String ADD_SERVICE_PROVIDER_MENU_NAME = "Import new services"; - - private final ServiceDescriptionRegistry serviceDescriptionRegistry; - - public AddServiceProviderMenu(ServiceDescriptionRegistry serviceDescriptionRegistry) { - super(); - this.serviceDescriptionRegistry = serviceDescriptionRegistry; - - final Component c = createCustomComponent(); - setAction(new AbstractAction(ADD_SERVICE_PROVIDER_MENU_NAME) { - @Override - public void actionPerformed(ActionEvent e) { - ((JPopupMenu) c).show(AddServiceProviderMenu.this, 0, - AddServiceProviderMenu.this.getHeight()); - } - }); - } - - private Component createCustomComponent() { - JPopupMenu addServiceMenu = new JPopupMenu( - ADD_SERVICE_PROVIDER_MENU_NAME); - addServiceMenu.setToolTipText("Add a new service provider"); - boolean isEmpty = true; - List<ConfigurableServiceProvider> providers = new ArrayList<>( - serviceDescriptionRegistry.getUnconfiguredServiceProviders()); - Collections.sort(providers, new ServiceProviderComparator()); - for (ConfigurableServiceProvider provider : providers) { - /* - * Skip BioCatalogue's ConfigurableServiceProviderS as they should - * not be used to add servcie directlry but rather though the - * Service Catalogue perspective - */ - if (provider.getId().toLowerCase().contains("servicecatalogue")) - continue; - - AddServiceProviderAction addAction = new AddServiceProviderAction( - provider, this); - addAction.setServiceDescriptionRegistry(serviceDescriptionRegistry); - addServiceMenu.add(addAction); - isEmpty = false; - } - if (isEmpty) - addServiceMenu.setEnabled(false); - return addServiceMenu; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/Filter.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/Filter.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/Filter.java deleted file mode 100644 index e67e8f5..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/Filter.java +++ /dev/null @@ -1,33 +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.ui.servicepanel.tree; - -import javax.swing.tree.DefaultMutableTreeNode; - -public interface Filter { - boolean pass(DefaultMutableTreeNode node); - - String filterRepresentation(String original); - - void setSuperseded(boolean superseded); - - boolean isSuperseded(); -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeCellRenderer.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeCellRenderer.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeCellRenderer.java deleted file mode 100644 index 21f43c5..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeCellRenderer.java +++ /dev/null @@ -1,59 +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.ui.servicepanel.tree; - -import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.folderClosedIcon; -import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.folderOpenIcon; - -import java.awt.Component; - -import javax.swing.JTree; -import javax.swing.tree.DefaultTreeCellRenderer; - -@SuppressWarnings("serial") -public class FilterTreeCellRenderer extends DefaultTreeCellRenderer { - private Filter filter = null; - - @Override - public Component getTreeCellRendererComponent(JTree tree, Object value, - boolean sel, boolean expanded, boolean leaf, int row, - boolean hasFocus) { - - super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, - row, hasFocus); - Filter filter = getFilter(); - if (filter != null) - setText(filter.filterRepresentation(getText())); - if (expanded) - setIcon(folderOpenIcon); - else - setIcon(folderClosedIcon); - return this; - } - - public Filter getFilter() { - return filter; - } - - public void setFilter(Filter currentFilter) { - this.filter = currentFilter; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeModel.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeModel.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeModel.java deleted file mode 100644 index 191ed66..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeModel.java +++ /dev/null @@ -1,92 +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.ui.servicepanel.tree; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreePath; - -import org.apache.log4j.Logger; - -public final class FilterTreeModel extends DefaultTreeModel { - private static final long serialVersionUID = -8931308369832839862L; - private static final Logger logger = Logger - .getLogger(FilterTreeModel.class); - - Filter currentFilter; - - public FilterTreeModel(FilterTreeNode node) { - this(node, null); - } - - public FilterTreeModel(FilterTreeNode node, Filter filter) { - super(node); - currentFilter = filter; - node.setFilter(filter); - } - - public void setFilter(Filter filter) { - if (root != null) { - currentFilter = filter; - ((FilterTreeNode) root).setFilter(filter); - Object[] path = { root }; - fireTreeStructureChanged(this, path, null, null); - } - } - - @Override - public int getChildCount(Object parent) { - if (parent instanceof FilterTreeNode) - return (((FilterTreeNode) parent).getChildCount()); - return 0; - } - - @Override - public Object getChild(Object parent, int index) { - if (parent instanceof FilterTreeNode) - return (((FilterTreeNode) parent).getChildAt(index)); - return null; - } - - /** - * @return the currentFilter - */ - public Filter getCurrentFilter() { - return currentFilter; - } - - public TreePath getTreePathForObjectPath(List<Object> path) { - List<FilterTreeNode> resultList = new ArrayList<>(); - FilterTreeNode current = (FilterTreeNode) root; - resultList.add(current); - for (int i = 1; (i < path.size()) && (current != null); i++) { - logger.debug("Looking in " + current.getUserObject() + " for " + path.get(i)); - current = current.getChildForObject(path.get(i)); - if (current != null) - resultList.add(current); - } - if (current != null) - return new TreePath(resultList.toArray()); - return null; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeNode.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeNode.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeNode.java deleted file mode 100644 index 83fd439..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeNode.java +++ /dev/null @@ -1,142 +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.ui.servicepanel.tree; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.swing.tree.DefaultMutableTreeNode; - -import org.apache.log4j.Logger; - -public class FilterTreeNode extends DefaultMutableTreeNode { - private static final long serialVersionUID = 1933553584349932151L; - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(FilterTreeNode.class); - - private Filter filter; - private boolean passed = true; - private List<FilterTreeNode> filteredChildren = new ArrayList<>(); - - public FilterTreeNode(Object userObject) { - super(userObject); - userObject.toString(); - } - - public Filter getFilter() { - return filter; - } - - public void setFilter(Filter filter) { - if ((filter == null) || !filter.isSuperseded()) { - this.filter = filter; - passed = false; - filteredChildren.clear(); - if (filter == null) { - passed = true; - passFilterDown(null); - } else if (filter.pass(this)) { - passed = true; - passFilterDown(null); - } else { - passFilterDown(filter); - passed = filteredChildren.size() != 0; - } - } - } - - private void passFilterDown(Filter filter) { - int realChildCount = super.getChildCount(); - for (int i = 0; i < realChildCount; i++) { - FilterTreeNode realChild = (FilterTreeNode) super.getChildAt(i); - realChild.setFilter(filter); - if (realChild.isPassed()) - filteredChildren.add(realChild); - } - } - - public void add(FilterTreeNode node) { - super.add(node); - node.setFilter(filter); - // TODO work up - if (node.isPassed()) - filteredChildren.add(node); - } - - @Override - public void remove(int childIndex) { - if (filter != null) - // as child indexes might be inconsistent.. - throw new IllegalStateException("Can't remove while the filter is active"); - super.remove(childIndex); - } - - @Override - public int getChildCount() { - if (filter == null) - return super.getChildCount(); - return filteredChildren.size(); - } - - @Override - public FilterTreeNode getChildAt(int index) { - if (filter == null) - return (FilterTreeNode) super.getChildAt(index); - return filteredChildren.get(index); - } - - public boolean isPassed() { - return passed; - } - - public Set<FilterTreeNode> getLeaves() { - Set<FilterTreeNode> result = new HashSet<>(); - if (super.getChildCount() == 0) { - result.add(this); - return result; - } - - for (int i = 0; i < super.getChildCount(); i++) { - FilterTreeNode child = (FilterTreeNode) super.getChildAt(i); - result.addAll(child.getLeaves()); - } - return result; - } - - public FilterTreeNode getChildForObject(Object userObject) { - FilterTreeNode result = null; - for (int i=0; (i < super.getChildCount()) && (result == null); i++) { - FilterTreeNode child = (FilterTreeNode) super.getChildAt(i); - Object nodeObject = child.getUserObject(); -// logger.info("nodeObject is a " + nodeObject.getClass() + " - " + -// "userObject is a " + userObject.getClass()); - if (nodeObject.toString().equals(userObject.toString())) { - result = child; -// logger.info(nodeObject + " is equal to " + userObject); -// } else { -// logger.info(nodeObject + " is not equal to " + userObject); - } - } - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeSelectionModel.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeSelectionModel.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeSelectionModel.java deleted file mode 100644 index a5adfe9..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/FilterTreeSelectionModel.java +++ /dev/null @@ -1,46 +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.ui.servicepanel.tree; - -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - -public class FilterTreeSelectionModel extends DefaultTreeSelectionModel{ - private static final long serialVersionUID = 3127644524735089630L; - - public FilterTreeSelectionModel(){ - super(); - setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - } - - @Override - public void setSelectionPath(TreePath path) { - /* - * Nothing happens here - only calls to mySetSelectionPath() will have - * the effect of a node being selected. - */ - } - - public void mySetSelectionPath(TreePath path) { - super.setSelectionPath(path); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/MyFilter.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/MyFilter.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/MyFilter.java deleted file mode 100644 index 8baa0eb..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/MyFilter.java +++ /dev/null @@ -1,89 +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.ui.servicepanel.tree; - -import javax.swing.tree.DefaultMutableTreeNode; - -public class MyFilter implements Filter { - private static final String HTML_MATCH_END = "</font><font color=\"black\">"; - private static final String HTML_MATCH_START = "</font><font color=\"red\">"; - private static final String HTML_POSTFIX = "</font></html>"; - private static final String HTML_PREFIX = "<html><font color=\"black\">"; - - private String filterString; - private boolean superseded; - private String filterLowerCase; - - public MyFilter(String filterString) { - this.filterString = filterString; - this.filterLowerCase = filterString.toLowerCase(); - this.superseded = false; - } - - private boolean basicFilter(DefaultMutableTreeNode node) { - if (filterString.isEmpty()) - return true; - return node.getUserObject().toString().toLowerCase() - .contains(filterLowerCase); - } - - @Override - public boolean pass(DefaultMutableTreeNode node) { - return basicFilter(node); - } - - @Override - public String filterRepresentation(String original) { - StringBuilder sb = new StringBuilder(HTML_PREFIX); - int from = 0; - String originalLowerCase = original.toLowerCase(); - int index = originalLowerCase.indexOf(filterLowerCase, from); - while (index > -1) { - sb.append(original.substring(from, index)); - sb.append(HTML_MATCH_START); - sb.append(original.substring(index, - index + filterLowerCase.length())); - sb.append(HTML_MATCH_END); - from = index + filterLowerCase.length(); - index = originalLowerCase.indexOf(filterLowerCase, from); - } - if (from < original.length()) - sb.append(original.substring(from, original.length())); - return sb.append(HTML_POSTFIX).toString(); - } - - /** - * @return the superseded - */ - @Override - public boolean isSuperseded() { - return superseded; - } - - /** - * @param superseded - * the superseded to set - */ - @Override - public void setSuperseded(boolean superseded) { - this.superseded = superseded; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/TreePanel.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/TreePanel.java b/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/TreePanel.java deleted file mode 100644 index 46eca53..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/java/net/sf/taverna/t2/workbench/ui/servicepanel/tree/TreePanel.java +++ /dev/null @@ -1,371 +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.ui.servicepanel.tree; - -import static java.awt.BorderLayout.CENTER; -import static java.awt.BorderLayout.NORTH; -import static java.awt.BorderLayout.WEST; -import static java.awt.Color.GRAY; -import static java.awt.GridBagConstraints.HORIZONTAL; -import static java.awt.GridBagConstraints.NONE; -import static javax.swing.SwingUtilities.invokeLater; -import static net.sf.taverna.t2.lang.ui.EdgeLineBorder.TOP; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.Timer; -import java.util.TimerTask; - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.JTree; -import javax.swing.border.CompoundBorder; -import javax.swing.border.EmptyBorder; -import javax.swing.event.TreeExpansionEvent; -import javax.swing.event.TreeExpansionListener; -import javax.swing.tree.TreeCellRenderer; -import javax.swing.tree.TreePath; - -import net.sf.taverna.t2.lang.ui.EdgeLineBorder; - -import org.apache.log4j.Logger; - -@SuppressWarnings("serial") -public abstract class TreePanel extends JPanel { - private static int MAX_EXPANSION = 100; - private static final int SEARCH_WIDTH = 15; - private static Logger logger = Logger.getLogger(TreePanel.class); - - protected Set<List<Object>> expandedPaths = new HashSet<>(); - protected FilterTreeModel filterTreeModel; - protected JTextField searchField = new JTextField(SEARCH_WIDTH); - protected JTree tree = new JTree(); - protected JScrollPane treeScrollPane; - - private String availableObjectsString = ""; - private String matchingObjectsString = ""; - private String noMatchingObjectsString = ""; - - private TreeExpandCollapseListener treeExpandListener = new TreeExpandCollapseListener(); - private Object filterLock = new Object(); - - public TreePanel(FilterTreeModel treeModel) { - filterTreeModel = treeModel; - } - - public void expandTreePaths() throws InterruptedException, - InvocationTargetException { -// Filter appliedFilter = filterTreeModel.getCurrentFilter(); -// if (appliedFilter == null) { - for (int i = 0; (i < tree.getRowCount()) && (i < MAX_EXPANSION); i++) - tree.expandRow(i); -// } else { -// boolean rowsFinished = false; -// for (int i = 0; (!appliedFilter.isSuperseded()) && (!rowsFinished) -// && (i < MAX_EXPANSION); i++) { -// TreePath tp = tree.getPathForRow(i); -// if (tp == null) { -// rowsFinished = true; -// } else { -// if (!appliedFilter.pass((DefaultMutableTreeNode) tp -// .getLastPathComponent())) { -// tree.expandRow(i); -// } -// } -// } -// } - } - - public void expandAll(FilterTreeNode node, boolean expand) { - @SuppressWarnings("unused") - FilterTreeNode root = (FilterTreeNode) tree.getModel().getRoot(); - - // Traverse tree from root - expandAll(new TreePath(node.getPath()), expand); - } - - @SuppressWarnings("rawtypes") - private void expandAll(TreePath parent, boolean expand) { - // Traverse children - FilterTreeNode node = (FilterTreeNode) parent.getLastPathComponent(); - if (node.getChildCount() >= 0) - for (Enumeration e=node.children(); e.hasMoreElements(); ) { - FilterTreeNode n = (FilterTreeNode) e.nextElement(); - TreePath path = parent.pathByAddingChild(n); - expandAll(path, expand); - } - - // Expansion or collapse must be done bottom-up - if (expand) - tree.expandPath(parent); - else - tree.collapsePath(parent); - } - - protected void initialize() { - setLayout(new BorderLayout()); - treeScrollPane = new JScrollPane(tree); - tree.setModel(filterTreeModel); - tree.addTreeExpansionListener(treeExpandListener); - tree.setCellRenderer(createCellRenderer()); - tree.setSelectionModel(new FilterTreeSelectionModel()); - - JPanel topPanel = new JPanel(); - topPanel.setBorder(new CompoundBorder(new EdgeLineBorder(TOP, GRAY), new EmptyBorder(10, 5, 0, 5))); - topPanel.setLayout(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - - JLabel filterLabel = new JLabel("Filter: "); - c.fill = NONE; - c.gridx = 0; - c.gridy = 0; - c.weightx = 0.0; - c.anchor = GridBagConstraints.LINE_START; - topPanel.add(filterLabel, c); - - c.fill = HORIZONTAL; - c.gridx = 1; - c.gridy = 0; - c.weightx = 1.0; - topPanel.add(searchField, c); - - - c.fill = NONE; - c.gridx = 2; - c.gridy = 0; - c.weightx = 0.0; - final JButton clearButton = new JButton("Clear"); - clearButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - searchField.setText(""); - invokeLater(new RunFilter()); - clearButton.getParent().requestFocusInWindow();// so that the button does not stay focused after it is clicked on and did its action - } - }); - topPanel.add(clearButton, c); - - c.gridx = 3; - c.weightx = 0.2; - topPanel.add(new JPanel(), c); - - JPanel topExtraPanel = new JPanel(new BorderLayout()); - - topExtraPanel.add(topPanel, NORTH); - - Component extraComponent = createExtraComponent(); - if (extraComponent != null) { - JPanel extraPanel = new JPanel(); - extraPanel.setLayout(new BorderLayout()); - extraPanel.add(extraComponent, WEST); - topExtraPanel.add(extraPanel, CENTER); - } - - add(topExtraPanel, NORTH); - add(treeScrollPane, CENTER); - - searchField.addKeyListener(new SearchFieldKeyAdapter()); - } - - protected Component createExtraComponent() { - return null; - } - - protected TreeCellRenderer createCellRenderer() { - return new FilterTreeCellRenderer(); - } - - public void runFilter() throws InterruptedException, - InvocationTargetException { - /* - * Special lock object, don't do a synchronized model, as the lock on - * JComponent might deadlock when painting the panel - see comments at - * http://www.mygrid.org.uk/dev/issues/browse/T2-1438 - */ - synchronized (filterLock) { - tree.removeTreeExpansionListener(treeExpandListener); - String text = searchField.getText(); - FilterTreeNode root = (FilterTreeNode) tree.getModel().getRoot(); - if (text.isEmpty()) { - setFilter(null); - root.setUserObject(getAvailableObjectsString()); - filterTreeModel.nodeChanged(root); - for (List<Object> tp : expandedPaths) { - // for (int i = 0; i < tp.length; i++) - // logger.info("Trying to expand " + tp[i]); - tree.expandPath(filterTreeModel.getTreePathForObjectPath(tp)); - } - } else { - setFilter(createFilter(text)); - root.setUserObject(root.getChildCount() > 0 ? getMatchingObjectsString() - : getNoMatchingObjectsString()); - filterTreeModel.nodeChanged(root); - expandTreePaths(); - } - tree.addTreeExpansionListener(treeExpandListener); - } - } - - /** - * @return the availableObjectsString - */ - public String getAvailableObjectsString() { - return availableObjectsString; - } - - /** - * @param availableObjectsString the availableObjectsString to set - */ - public void setAvailableObjectsString(String availableObjectsString) { - this.availableObjectsString = availableObjectsString; - } - - /** - * @return the matchingObjectsString - */ - public String getMatchingObjectsString() { - return matchingObjectsString; - } - - /** - * @param matchingObjectsString the matchingObjectsString to set - */ - public void setMatchingObjectsString(String matchingObjectsString) { - this.matchingObjectsString = matchingObjectsString; - } - - /** - * @return the noMatchingObjectsString - */ - public String getNoMatchingObjectsString() { - return noMatchingObjectsString; - } - - /** - * @param noMatchingObjectsString the noMatchingObjectsString to set - */ - public void setNoMatchingObjectsString(String noMatchingObjectsString) { - this.noMatchingObjectsString = noMatchingObjectsString; - } - - public Filter createFilter(String text) { - return new MyFilter(text); - } - - public void setFilter(Filter filter) { - if (tree.getCellRenderer() instanceof FilterTreeCellRenderer) - ((FilterTreeCellRenderer)tree.getCellRenderer()).setFilter(filter); - filterTreeModel.setFilter(filter); - } - - protected class ExpandRowRunnable implements Runnable { - int rowNumber; - - public ExpandRowRunnable(int rowNumber) { - this.rowNumber = rowNumber; - } - - @Override - public void run() { - tree.expandRow(rowNumber); - } - } - - protected class RunFilter implements Runnable { - @Override - public void run() { - Filter oldFilter = filterTreeModel.getCurrentFilter(); - if (oldFilter != null) - oldFilter.setSuperseded(true); - try { - runFilter(); - } catch (InterruptedException e) { - Thread.interrupted(); - } catch (InvocationTargetException e) { - logger.error("", e); - } - } - } - - protected class SearchFieldKeyAdapter extends KeyAdapter { - private final Runnable runFilterRunnable; - Timer timer = new Timer("Search field timer", true); - - private SearchFieldKeyAdapter() { - this.runFilterRunnable = new RunFilter(); - } - - @Override - public void keyReleased(KeyEvent e) { - timer.cancel(); - timer = new Timer(); - timer.schedule(new TimerTask() { - @Override - public void run() { - invokeLater(runFilterRunnable); - } - }, 500); - } - } - - private void noteExpansions() { - expandedPaths.clear(); - TreePath rootPath = new TreePath(filterTreeModel.getRoot()); - for (Enumeration<TreePath> e = tree.getExpandedDescendants(rootPath); e.hasMoreElements();) { - List<Object> userObjects = new ArrayList<>(); - Object[] expandedPath = e.nextElement().getPath(); - for (int i = 0; i < expandedPath.length; i++) { - FilterTreeNode node = (FilterTreeNode) expandedPath[i]; -// logger.info("The object in the path is a " + expandedPath[i].getClass()); - userObjects.add(node.getUserObject()); -// logger.info("Added " + node.getUserObject() + " to path"); - } - expandedPaths.add(userObjects); - } - } - - protected class TreeExpandCollapseListener implements TreeExpansionListener { - @Override - public void treeCollapsed(TreeExpansionEvent event) { - noteExpansions(); - } - - @Override - public void treeExpanded(TreeExpansionEvent event) { - noteExpansions(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI b/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI deleted file mode 100644 index bb87331..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI +++ /dev/null @@ -1 +0,0 @@ -net.sf.taverna.t2.workbench.ui.servicepanel.ServicePanelComponentFactory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context-osgi.xml b/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context-osgi.xml deleted file mode 100644 index 2d96b28..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context-osgi.xml +++ /dev/null @@ -1,20 +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="ServiceDescriptionConfigUIFactory" interface="uk.org.taverna.configuration.ConfigurationUIFactory" /> - - <service ref="ServicePanelComponentFactory" interface="net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI" /> - - <reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" /> - <reference id="menuManager" interface="net.sf.taverna.t2.ui.menu.MenuManager" /> - <reference id="selectionManager" interface="net.sf.taverna.t2.workbench.selection.SelectionManager" /> - <reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry"/> - <reference id="serviceDescriptionsConfiguration" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionsConfiguration"/> - <reference id="serviceRegistry" interface="uk.org.taverna.commons.services.ServiceRegistry" /> - -</beans:beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context.xml b/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context.xml deleted file mode 100644 index f0a11c1..0000000 --- a/taverna-workbench-activity-palette-ui/src/main/resources/META-INF/spring/activity-palette-ui-context.xml +++ /dev/null @@ -1,22 +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="ServiceDescriptionConfigUIFactory" - class="net.sf.taverna.t2.workbench.ui.servicepanel.config.ServiceDescriptionConfigUIFactory"> - <property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" /> - <property name="serviceDescriptionsConfiguration" ref="serviceDescriptionsConfiguration" /> - </bean> - - <bean id="ServicePanelComponentFactory" - class="net.sf.taverna.t2.workbench.ui.servicepanel.ServicePanelComponentFactory"> - <property name="editManager" ref="editManager" /> - <property name="menuManager" ref="menuManager" /> - <property name="selectionManager" ref="selectionManager" /> - <property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" /> - <property name="serviceRegistry" ref="serviceRegistry" /> - </bean> - -</beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-tools/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-tools/pom.xml b/taverna-workbench-activity-tools/pom.xml deleted file mode 100644 index c84a263..0000000 --- a/taverna-workbench-activity-tools/pom.xml +++ /dev/null @@ -1,30 +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-api</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>activity-tools</artifactId> - <packaging>bundle</packaging> - <name>Activity tools</name> - <description>Tools useful for ui-activitys</description> - <dependencies> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>menu-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>workbench-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>uk.org.taverna.scufl2</groupId> - <artifactId>scufl2-api</artifactId> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-activity-tools/src/main/java/net/sf/taverna/t2/workbench/activitytools/AbstractConfigureActivityMenuAction.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-activity-tools/src/main/java/net/sf/taverna/t2/workbench/activitytools/AbstractConfigureActivityMenuAction.java b/taverna-workbench-activity-tools/src/main/java/net/sf/taverna/t2/workbench/activitytools/AbstractConfigureActivityMenuAction.java deleted file mode 100644 index 4744774..0000000 --- a/taverna-workbench-activity-tools/src/main/java/net/sf/taverna/t2/workbench/activitytools/AbstractConfigureActivityMenuAction.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.sf.taverna.t2.workbench.activitytools; - -import static javax.swing.Action.NAME; - -import java.awt.Frame; -import java.net.URI; - -import javax.swing.Action; - -import uk.org.taverna.scufl2.api.activity.Activity; -import uk.org.taverna.scufl2.api.common.Scufl2Tools; -import uk.org.taverna.scufl2.api.core.Processor; -import uk.org.taverna.scufl2.api.profiles.ProcessorBinding; -import uk.org.taverna.scufl2.api.profiles.Profile; -import net.sf.taverna.t2.ui.menu.AbstractContextualMenuAction; -import net.sf.taverna.t2.workbench.ui.Utils; - -public abstract class AbstractConfigureActivityMenuAction extends AbstractContextualMenuAction { - private static final URI configureSection = URI - .create("http://taverna.sf.net/2009/contextMenu/configure"); - - protected Scufl2Tools scufl2Tools = new Scufl2Tools(); - protected final URI activityType; - - public AbstractConfigureActivityMenuAction(URI activityType) { - super(configureSection, 50); - this.activityType = activityType; - } - - @Override - public boolean isEnabled() { - return super.isEnabled() && findActivity() != null; - } - - protected Activity findActivity() { - if (getContextualSelection() == null) - return null; - Object selection = getContextualSelection().getSelection(); - if (selection instanceof Activity) { - Activity activity = (Activity) selection; - if (activity.getType().equals(activityType)) - return activity; - } - if (selection instanceof Processor) { - Processor processor = (Processor) selection; - Profile profile = processor.getParent().getParent().getMainProfile(); - for (ProcessorBinding processorBinding : scufl2Tools.processorBindingsForProcessor(processor, profile)) - if (processorBinding.getBoundActivity().getType().equals(activityType)) - return processorBinding.getBoundActivity(); - } - return null; - } - - protected Frame getParentFrame() { - return Utils.getParentFrame(getContextualSelection() - .getRelativeToComponent()); - } - - protected void addMenuDots(Action configAction) { - String oldName = (String) configAction.getValue(NAME); - if (!oldName.endsWith("..")) - configAction.putValue(NAME, oldName + "..."); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-api/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-api/pom.xml b/taverna-workbench-configuration-api/pom.xml deleted file mode 100644 index 81e819f..0000000 --- a/taverna-workbench-configuration-api/pom.xml +++ /dev/null @@ -1,22 +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-api</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>configuration-api</artifactId> - <packaging>bundle</packaging> - <name>Configuration Management API</name> - <description>General configuration management</description> - - <dependencies> - <dependency> - <groupId>uk.org.taverna.configuration</groupId> - <artifactId>taverna-configuration-api</artifactId> - </dependency> - </dependencies> -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/colour/ColourManager.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/colour/ColourManager.java b/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/colour/ColourManager.java deleted file mode 100644 index 4d5356f..0000000 --- a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/colour/ColourManager.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 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.configuration.colour; - -import java.awt.Color; - -import uk.org.taverna.configuration.Configurable; - -/** - * @author David Withers - */ -public interface ColourManager extends Configurable { - /** - * Builds a Color that has been configured and associated with the given - * String (usually an object type). - * - * @return the associated Color, or if nothing is associated returns - * {@link Color#WHITE}. - */ - Color getPreferredColour(String itemKey); - - void setPreferredColour(String itemKey, Color colour); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/mimetype/MimeTypeManager.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/mimetype/MimeTypeManager.java b/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/mimetype/MimeTypeManager.java deleted file mode 100644 index f0ae0d3..0000000 --- a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/mimetype/MimeTypeManager.java +++ /dev/null @@ -1,42 +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.configuration.mimetype; - -import java.util.Map; - -import uk.org.taverna.configuration.Configurable; - -public interface MimeTypeManager extends Configurable { - @Override - String getCategory(); - - @Override - Map<String, String> getDefaultPropertyMap(); - - @Override - String getUUID(); - - @Override - String getDisplayName(); - - @Override - String getFilePrefix(); -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/WorkbenchConfiguration.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/WorkbenchConfiguration.java b/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/WorkbenchConfiguration.java deleted file mode 100644 index 461ba5c..0000000 --- a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/WorkbenchConfiguration.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 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.configuration.workbench; - -import uk.org.taverna.configuration.Configurable; - -/** - * @author David Withers - */ -public interface WorkbenchConfiguration extends Configurable { - boolean getCaptureConsole(); - - void setCaptureConsole(boolean captureConsole); - - boolean getWarnInternalErrors(); - - void setWarnInternalErrors(boolean warnInternalErrors); - - int getMaxMenuItems(); - - void setMaxMenuItems(int maxMenuItems); - - String getDotLocation(); - - void setDotLocation(String dotLocation); -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/ui/T2ConfigurationFrame.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/ui/T2ConfigurationFrame.java b/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/ui/T2ConfigurationFrame.java deleted file mode 100644 index 577484f..0000000 --- a/taverna-workbench-configuration-api/src/main/java/net/sf/taverna/t2/workbench/configuration/workbench/ui/T2ConfigurationFrame.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 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.configuration.workbench.ui; - -/** - * @author David Withers - */ -public interface T2ConfigurationFrame { - void showFrame(); - - void showConfiguration(String name); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-impl/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-impl/pom.xml b/taverna-workbench-configuration-impl/pom.xml deleted file mode 100644 index 19356bb..0000000 --- a/taverna-workbench-configuration-impl/pom.xml +++ /dev/null @@ -1,61 +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-impl</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.taverna.t2.ui-impl</groupId> - <artifactId>configuration-impl</artifactId> - <packaging>bundle</packaging> - <name>Configuration Management Implementations</name> - <description>General configuration management</description> - - <dependencies> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>menu-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>helper-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>net.sf.taverna.t2.ui-api</groupId> - <artifactId>configuration-api</artifactId> - <version>${t2.ui.api.version}</version> - </dependency> - <dependency> - <groupId>uk.org.taverna.configuration</groupId> - <artifactId>taverna-configuration-api</artifactId> - <version>${taverna.configuration.version}</version> - </dependency> - <dependency> - <groupId>uk.org.taverna.configuration</groupId> - <artifactId>taverna-app-configuration-api</artifactId> - <version>${taverna.configuration.version}</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>uk.org.taverna.configuration</groupId> - <artifactId>taverna-configuration-impl</artifactId> - <version>0.1.1-SNAPSHOT</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>uk.org.taverna.configuration</groupId> - <artifactId>taverna-app-configuration-impl</artifactId> - <version>0.1.1-SNAPSHOT</version> - <scope>test</scope> - </dependency> - </dependencies> - -</project> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-configuration-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/configuration/WorkbenchConfigurationImpl.java ---------------------------------------------------------------------- diff --git a/taverna-workbench-configuration-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/configuration/WorkbenchConfigurationImpl.java b/taverna-workbench-configuration-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/configuration/WorkbenchConfigurationImpl.java deleted file mode 100644 index 0e63a4a..0000000 --- a/taverna-workbench-configuration-impl/src/main/java/net/sf/taverna/t2/workbench/ui/impl/configuration/WorkbenchConfigurationImpl.java +++ /dev/null @@ -1,210 +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.ui.impl.configuration; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -import net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration; - -import org.apache.log4j.Logger; - -import uk.org.taverna.configuration.AbstractConfigurable; -import uk.org.taverna.configuration.ConfigurationManager; -import uk.org.taverna.configuration.app.ApplicationConfiguration; - -/** - * An implementation of Configurable for general Workbench configuration - * properties - * - * @author Stuart Owen - * @author Stian Soiland-Reyes - */ -public class WorkbenchConfigurationImpl extends AbstractConfigurable implements - WorkbenchConfiguration { - private static Logger logger = Logger - .getLogger(WorkbenchConfiguration.class); - private static final int DEFAULT_MAX_MENU_ITEMS = 20; - public static final String TAVERNA_DOTLOCATION = "taverna.dotlocation"; - public static final String MAX_MENU_ITEMS = "taverna.maxmenuitems"; - public static final String WARN_INTERNAL_ERRORS = "taverna.warninternal"; - public static final String CAPTURE_CONSOLE = "taverna.captureconsole"; - private static final String BIN = "bin"; - private static final String BUNDLE_CONTENTS = "Contents"; - private static final String BUNDLE_MAC_OS = "MacOS"; - private static final String DOT_EXE = "dot.exe"; - private static final String DOT_FALLBACK = "dot"; - public static String uuid = "c14856f0-5967-11dd-ae16-0800200c9a66"; - private static final String MAC_OS_X = "Mac OS X"; - private static final String WIN32I386 = "win32i386"; - private static final String WINDOWS = "Windows"; - - private ApplicationConfiguration applicationConfiguration; - - /** - * Constructs a new <code>WorkbenchConfigurationImpl</code>. - * - * @param configurationManager - */ - public WorkbenchConfigurationImpl(ConfigurationManager configurationManager) { - super(configurationManager); - } - - Map<String, String> defaultWorkbenchProperties = null; - Map<String, String> workbenchProperties = new HashMap<String, String>(); - - @Override - public String getCategory() { - return "general"; - } - - @Override - public Map<String, String> getDefaultPropertyMap() { - if (defaultWorkbenchProperties == null) { - defaultWorkbenchProperties = new HashMap<>(); - String dotLocation = System.getProperty(TAVERNA_DOTLOCATION) != null ? System - .getProperty(TAVERNA_DOTLOCATION) : getDefaultDotLocation(); - if (dotLocation != null) - defaultWorkbenchProperties - .put(TAVERNA_DOTLOCATION, dotLocation); - defaultWorkbenchProperties.put(MAX_MENU_ITEMS, - Integer.toString(DEFAULT_MAX_MENU_ITEMS)); - defaultWorkbenchProperties.put(WARN_INTERNAL_ERRORS, - Boolean.FALSE.toString()); - defaultWorkbenchProperties.put(CAPTURE_CONSOLE, - Boolean.TRUE.toString()); - } - return defaultWorkbenchProperties; - } - - @Override - public String getDisplayName() { - return "Workbench"; - } - - @Override - public String getFilePrefix() { - return "Workbench"; - } - - @Override - public String getUUID() { - return uuid; - } - - @Override - public boolean getWarnInternalErrors() { - String property = getProperty(WARN_INTERNAL_ERRORS); - return Boolean.parseBoolean(property); - } - - @Override - public boolean getCaptureConsole() { - String property = getProperty(CAPTURE_CONSOLE); - return Boolean.parseBoolean(property); - } - - @Override - public void setWarnInternalErrors(boolean warnInternalErrors) { - setProperty(WARN_INTERNAL_ERRORS, Boolean.toString(warnInternalErrors)); - } - - @Override - public void setCaptureConsole(boolean captureConsole) { - setProperty(CAPTURE_CONSOLE, Boolean.toString(captureConsole)); - } - - @Override - public void setMaxMenuItems(int maxMenuItems) { - if (maxMenuItems < 2) - throw new IllegalArgumentException( - "Maximum menu items must be at least 2"); - setProperty(MAX_MENU_ITEMS, Integer.toString(maxMenuItems)); - } - - @Override - public int getMaxMenuItems() { - String property = getProperty(MAX_MENU_ITEMS); - try { - int maxMenuItems = Integer.parseInt(property); - if (maxMenuItems >= 2) - return maxMenuItems; - logger.warn(MAX_MENU_ITEMS + " can't be less than 2"); - } catch (NumberFormatException ex) { - logger.warn("Invalid number for " + MAX_MENU_ITEMS + ": " - + property); - } - // We'll return the default instead - return DEFAULT_MAX_MENU_ITEMS; - } - - @Override - public String getDotLocation() { - return getProperty(TAVERNA_DOTLOCATION); - } - - @Override - public void setDotLocation(String dotLocation) { - setProperty(TAVERNA_DOTLOCATION, dotLocation); - } - - private String getDefaultDotLocation() { - if (applicationConfiguration == null) - return null; - File startupDir = applicationConfiguration.getStartupDir(); - if (startupDir == null) - return DOT_FALLBACK; - - String os = System.getProperty("os.name"); - if (os.equals(MAC_OS_X)) - if (startupDir.getParentFile() != null) { - File contentsDir = startupDir.getParentFile().getParentFile(); - if (contentsDir != null - && contentsDir.getName().equalsIgnoreCase( - BUNDLE_CONTENTS)) { - File dot = new File(new File(contentsDir, BUNDLE_MAC_OS), - DOT_FALLBACK); - if (dot.exists()) - return dot.getAbsolutePath(); - } - } else if (os.startsWith(WINDOWS)) { - File binWin386Dir = new File(new File(startupDir, BIN), - WIN32I386); - File dot = new File(binWin386Dir, DOT_EXE); - if (dot.exists()) - return dot.getAbsolutePath(); - } - return DOT_FALLBACK; - } - - /** - * Sets the applicationConfiguration. - * - * @param applicationConfiguration - * the new value of applicationConfiguration - */ - public void setApplicationConfiguration( - ApplicationConfiguration applicationConfiguration) { - this.applicationConfiguration = applicationConfiguration; - defaultWorkbenchProperties = null; - } -}
