http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserComponentEntryPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserComponentEntryPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserComponentEntryPanel.java deleted file mode 100644 index 1d393c5..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserComponentEntryPanel.java +++ /dev/null @@ -1,98 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; - -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -import io.github.taverna_extras.component.api.Family; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.api.Version; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; - -/** - * @author alanrw - */ -public class RegistryAndFamilyChooserComponentEntryPanel extends JPanel { - private static final long serialVersionUID = -6675545311458594678L; - private static final String T2FLOW = ".t2flow"; - private static final String WFBUNDLE = ".wfbundle"; - - private JTextField componentNameField = new JTextField(20); - private RegistryAndFamilyChooserPanel registryAndFamilyChooserPanel; - - public RegistryAndFamilyChooserComponentEntryPanel(ComponentPreference prefs) { - super(new GridBagLayout()); - registryAndFamilyChooserPanel = new RegistryAndFamilyChooserPanel(prefs); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.anchor = GridBagConstraints.WEST; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.gridwidth = 2; - gbc.weightx = 1; - this.add(registryAndFamilyChooserPanel, gbc); - gbc.gridy = 1; - - gbc.gridwidth = 1; - gbc.gridx = 0; - gbc.weightx = 0; - gbc.fill = GridBagConstraints.NONE; - this.add(new JLabel("Component name:"), gbc); - gbc.gridx = 1; - gbc.weightx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - this.add(componentNameField, gbc); - } - - public String getComponentName() { - return componentNameField.getText(); - } - - public void setComponentName(String name) { - componentNameField.setText(name); - } - - public Version.ID getComponentVersionIdentification() { - String componentName = getComponentName(); - Family familyChoice = registryAndFamilyChooserPanel.getChosenFamily(); - Registry registry = registryAndFamilyChooserPanel.getChosenRegistry(); - - if (familyChoice == null || registry == null || componentName == null - || componentName.isEmpty()) - return null; - - return new Version.Identifier(registry.getRegistryBase(), - familyChoice.getName(), trim(componentName), -1); - } - - private static String trim(String name) { - if (name.endsWith(WFBUNDLE)) - return name.substring(0, name.length() - WFBUNDLE.length()); - else if (name.endsWith(T2FLOW)) - return name.substring(0, name.length() - T2FLOW.length()); - return name; - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserPanel.java deleted file mode 100644 index bc24dca..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryAndFamilyChooserPanel.java +++ /dev/null @@ -1,102 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.WEST; -import static org.apache.log4j.Logger.getLogger; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.util.List; - -import javax.swing.JPanel; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.Family; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; -import org.apache.taverna.lang.observer.Observable; -import org.apache.taverna.lang.observer.Observer; - -/** - * @author alanrw - */ -public class RegistryAndFamilyChooserPanel extends JPanel implements - Observer<ProfileChoiceMessage>, Observable<FamilyChoiceMessage> { - private static Logger logger = getLogger(RegistryAndFamilyChooserPanel.class); - private static final long serialVersionUID = -535518473593617735L; - final RegistryChooserPanel registryPanel; - final FamilyChooserPanel familyPanel; - - public RegistryAndFamilyChooserPanel(ComponentPreference prefs) { - super(new GridBagLayout()); - registryPanel = new RegistryChooserPanel(prefs); - familyPanel = new FamilyChooserPanel(registryPanel); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.anchor = WEST; - gbc.fill = BOTH; - gbc.gridwidth = 2; - gbc.weightx = 1; - add(registryPanel, gbc); - - gbc.gridx = 0; - gbc.gridy = 1; - gbc.weighty = 1; - add(familyPanel, gbc); - } - - public Registry getChosenRegistry() { - return registryPanel.getChosenRegistry(); - } - - public Family getChosenFamily() { - return familyPanel.getChosenFamily(); - } - - @Override - public void addObserver(Observer<FamilyChoiceMessage> observer) { - familyPanel.addObserver(observer); - } - - @Override - public List<Observer<FamilyChoiceMessage>> getObservers() { - return familyPanel.getObservers(); - } - - @Override - public void removeObserver(Observer<FamilyChoiceMessage> observer) { - familyPanel.removeObserver(observer); - } - - @Override - public void notify(Observable<ProfileChoiceMessage> sender, - ProfileChoiceMessage message) { - try { - familyPanel.notify(sender, message); - } catch (Exception e) { - logger.error("problem handling notification about profile choice", - e); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChoiceMessage.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChoiceMessage.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChoiceMessage.java deleted file mode 100644 index 85249ca..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChoiceMessage.java +++ /dev/null @@ -1,40 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import io.github.taverna_extras.component.api.Registry; - -/** - * @author alanrw - */ -public class RegistryChoiceMessage { - private final Registry chosenRegistry; - - public RegistryChoiceMessage(Registry chosenRegistry) { - this.chosenRegistry = chosenRegistry; - } - - /** - * @return the chosenRegistry - */ - public Registry getChosenRegistry() { - return chosenRegistry; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChooserPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChooserPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChooserPanel.java deleted file mode 100644 index 1e2bf78..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/RegistryChooserPanel.java +++ /dev/null @@ -1,138 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.WEST; -import static java.awt.event.ItemEvent.SELECTED; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.ui.util.Utils.LONG_STRING; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.util.ArrayList; -import java.util.List; -import java.util.SortedMap; -import java.util.Vector; - -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; -import org.apache.taverna.lang.observer.Observable; -import org.apache.taverna.lang.observer.Observer; - -/** - * @author alanrw - */ -public class RegistryChooserPanel extends JPanel implements - Observable<RegistryChoiceMessage> { - private static final String REGISTRY_LABEL = "Component registry:"; - private static final long serialVersionUID = 8390860727800654604L; - private static final Logger logger = getLogger(RegistryChooserPanel.class); - - private final List<Observer<RegistryChoiceMessage>> observers = new ArrayList<>(); - private final JComboBox<String> registryBox; - private final SortedMap<String, Registry> registryMap; - - public RegistryChooserPanel(ComponentPreference pref) { - setLayout(new GridBagLayout()); - - GridBagConstraints gbc = new GridBagConstraints(); - - registryMap = pref.getRegistryMap(); - registryBox = new JComboBox<>(new Vector<>(registryMap.keySet())); - registryBox.setPrototypeDisplayValue(LONG_STRING); - registryBox.setEditable(false); - - gbc.gridx = 0; - gbc.anchor = WEST; - this.add(new JLabel(REGISTRY_LABEL), gbc); - gbc.gridx = 1; - gbc.weightx = 1; - gbc.fill = BOTH; - this.add(registryBox, gbc); - - registryBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent event) { - if (event.getStateChange() == SELECTED) - dealWithSelection(); - } - }); - - String firstKey = registryMap.firstKey(); - registryBox.setSelectedItem(firstKey); - dealWithSelection(); - } - - private void updateToolTipText() { - String key = (String) registryBox.getSelectedItem(); - Registry registry = registryMap.get(key); - registryBox.setToolTipText(registry.getRegistryBase().toString()); - } - - private void dealWithSelection() { - updateToolTipText(); - Registry chosenRegistry = getChosenRegistry(); - RegistryChoiceMessage message = new RegistryChoiceMessage( - chosenRegistry); - for (Observer<RegistryChoiceMessage> o : getObservers()) - try { - o.notify(this, message); - } catch (Exception e) { - logger.error("problem handling selection update", e); - } - } - - @Override - public void addObserver(Observer<RegistryChoiceMessage> observer) { - observers.add(observer); - Registry chosenRegistry = getChosenRegistry(); - RegistryChoiceMessage message = new RegistryChoiceMessage( - chosenRegistry); - try { - observer.notify(this, message); - } catch (Exception e) { - logger.error("problem handling addition of observer", e); - } - } - - @Override - public List<Observer<RegistryChoiceMessage>> getObservers() { - return observers; - } - - @Override - public void removeObserver(Observer<RegistryChoiceMessage> observer) { - observers.remove(observer); - } - - public Registry getChosenRegistry() { - if (registryBox.getSelectedIndex() < 0) - return null; - return registryMap.get(registryBox.getSelectedItem()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SearchChoicePanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SearchChoicePanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SearchChoicePanel.java deleted file mode 100644 index f26cf6b..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SearchChoicePanel.java +++ /dev/null @@ -1,259 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.WEST; -import static java.awt.event.ItemEvent.SELECTED; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.ui.util.Utils.LONG_STRING; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.util.Arrays; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.concurrent.ExecutionException; - -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.SwingWorker; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.ComponentFactory; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.api.Version; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; - -/** - * @author alanrw - */ -@SuppressWarnings("serial") -public class SearchChoicePanel extends JPanel { - private static final Logger logger = getLogger(SearchChoicePanel.class); - private static final String SEARCHING = "Searching..."; - private static final String[] SEARCHING_ARRAY = new String[] { SEARCHING }; - private static final String NO_MATCHES = "No matches"; - private static final String SEARCH_FAILED = "Search failed"; - private static final List<String> RESERVED_WORDS = Arrays.asList(SEARCHING, - NO_MATCHES, SEARCH_FAILED); - - private ComponentPreference preference;//FIXME beaninject from constructor - private ComponentFactory factory;//FIXME beaninject from constructor - private Registry registry; - private String prefixes; - private String queryText; - private JLabel registryURLLabel; - private JComboBox<String> familyBox; - private JComboBox<String> componentBox; - private JComboBox<Object> versionBox; - - public SearchChoicePanel(Registry registry, String prefixes, - String queryText) { - super(new GridBagLayout()); - this.registry = registry; - this.prefixes = prefixes; - this.queryText = queryText; - - componentBox = new JComboBox<>(SEARCHING_ARRAY); - componentBox.setPrototypeDisplayValue(LONG_STRING); - familyBox = new JComboBox<>(SEARCHING_ARRAY); - familyBox.setPrototypeDisplayValue(LONG_STRING); - versionBox = new JComboBox<Object>(SEARCHING_ARRAY); - versionBox.setPrototypeDisplayValue(LONG_STRING); - - GridBagConstraints gbc = new GridBagConstraints(); - - JLabel registryLabel = new JLabel("Component registry:"); - - gbc.insets.left = 5; - gbc.insets.right = 5; - gbc.gridx = 0; - gbc.anchor = WEST; - gbc.fill = BOTH; - gbc.gridwidth = 1; - gbc.weightx = 1; - gbc.gridy++; - this.add(registryLabel, gbc); - gbc.gridx = 1; - registryURLLabel = new JLabel(SEARCHING); - this.add(registryURLLabel, gbc); - gbc.gridx = 0; - gbc.gridy++; - this.add(new JLabel("Component family:"), gbc); - gbc.gridx = 1; - - this.add(familyBox, gbc); - gbc.gridx = 0; - gbc.gridy++; - this.add(new JLabel("Component:"), gbc); - gbc.gridx = 1; - this.add(componentBox, gbc); - - gbc.gridx = 0; - gbc.gridy++; - - this.add(new JLabel("Component version:"), gbc); - gbc.gridx = 1; - this.add(versionBox, gbc); - - new Searcher().execute(); - } - - private class Searcher extends SwingWorker<Set<Version.ID>, Object> { - @Override - protected Set<Version.ID> doInBackground() throws Exception { - return registry.searchForComponents(prefixes, queryText); - } - - @Override - protected void done() { - clearAll(); - try { - Set<Version.ID> matches = get(); - if (matches.isEmpty()) - setAll(NO_MATCHES); - else - searchCompletedSuccessfully(matches); - } catch (InterruptedException e) { - logger.error("search was interrupted", e); - setAll(SEARCH_FAILED); - } catch (ExecutionException e) { - logger.error("problem in execution", e.getCause()); - setAll(SEARCH_FAILED); - } - } - } - - private void clearAll() { - familyBox.removeAllItems(); - componentBox.removeAllItems(); - versionBox.removeAllItems(); - } - - private void setAll(String text) { - registryURLLabel.setText(text); - familyBox.addItem(text); - componentBox.addItem(text); - versionBox.addItem(text); - } - - private String[] calculateMatchingFamilyNames( - Set<Version.ID> matchingComponents) { - Set<String> result = new TreeSet<>(); - for (Version.ID v : matchingComponents) - result.add(v.getFamilyName()); - return result.toArray(new String[0]); - } - - private void updateComponentBox(Set<Version.ID> matchingComponents, - JComboBox<String> componentBox, String selectedItem) { - componentBox.removeAllItems(); - String[] matchingComponentNames = calculateMatchingComponentNames( - matchingComponents, selectedItem); - for (String componentName : matchingComponentNames) - componentBox.addItem(componentName); - componentBox.setSelectedIndex(0); - } - - private String[] calculateMatchingComponentNames( - Set<Version.ID> matchingComponents, String familyName) { - Set<String> result = new TreeSet<>(); - for (Version.ID v : matchingComponents) - if (v.getFamilyName().equals(familyName)) - result.add(v.getComponentName()); - return result.toArray(new String[0]); - } - - private void updateVersionBox(Set<Version.ID> matchingComponents, - JComboBox<Object> versionBox, String componentName, - String familyName) { - versionBox.removeAllItems(); - for (Integer v : calculateMatchingVersionNumbers(matchingComponents, - componentName, familyName)) - versionBox.addItem(v); - versionBox.setSelectedIndex(0); - } - - private Integer[] calculateMatchingVersionNumbers( - Set<Version.ID> matchingComponents, String componentName, - String familyName) { - Set<Integer> result = new TreeSet<>(); - for (Version.ID v : matchingComponents) - if (v.getFamilyName().equals(familyName) - && v.getComponentName().equals(componentName)) - result.add(v.getComponentVersion()); - return result.toArray(new Integer[0]); - } - - public Version.ID getVersionIdentification() { - String registryString = registryURLLabel.getText(); - if (RESERVED_WORDS.contains(registryString)) - return null; - - try { - return factory.getVersion(registry.getRegistryBase(), - (String) familyBox.getSelectedItem(), - (String) componentBox.getSelectedItem(), - (Integer) versionBox.getSelectedItem()).getID(); - } catch (ComponentException e) { - logger.warn( - "unexpected failure to construct component version token", - e); - return null; - } - } - - private void searchCompletedSuccessfully(final Set<Version.ID> matches) { - Version.ID one = (Version.ID) matches.toArray()[0]; - registryURLLabel.setText(preference.getRegistryName(one - .getRegistryBase())); - for (String familyName : calculateMatchingFamilyNames(matches)) - familyBox.addItem(familyName); - familyBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == SELECTED) - updateComponentBox(matches, componentBox, - (String) familyBox.getSelectedItem()); - } - }); - componentBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == SELECTED) - updateVersionBox(matches, versionBox, - (String) componentBox.getSelectedItem(), - (String) familyBox.getSelectedItem()); - } - }); - familyBox.setSelectedIndex(0); - updateComponentBox(matches, componentBox, - (String) familyBox.getSelectedItem()); - updateVersionBox(matches, versionBox, - (String) componentBox.getSelectedItem(), - (String) familyBox.getSelectedItem()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SharingPolicyChooserPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SharingPolicyChooserPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SharingPolicyChooserPanel.java deleted file mode 100644 index 3625a84..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/panel/SharingPolicyChooserPanel.java +++ /dev/null @@ -1,157 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.panel; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.NONE; -import static java.awt.GridBagConstraints.WEST; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.ui.util.Utils.LONG_STRING; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.util.List; -import java.util.SortedMap; -import java.util.TreeMap; -import java.util.concurrent.ExecutionException; - -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.SwingWorker; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.api.SharingPolicy; -import org.apache.taverna.lang.observer.Observable; -import org.apache.taverna.lang.observer.Observer; - -/** - * @author alanrw - */ -public class SharingPolicyChooserPanel extends JPanel { - private static final String SHARING_LABEL = "Sharing policy:"; - private static final String READING_MSG = "Reading sharing policies"; - private static final String NO_PERMISSIONS_MSG = "No permissions available"; - private static final long serialVersionUID = 2175274929391537032L; - private static final Logger logger = getLogger(SharingPolicyChooserPanel.class); - - private final JComboBox<String> permissionBox = new JComboBox<>(); - private final SortedMap<String, SharingPolicy> permissionMap = new TreeMap<>(); - private Registry registry; - - public SharingPolicyChooserPanel(RegistryChooserPanel registryPanel) { - this(); - registryPanel.addObserver(new Observer<RegistryChoiceMessage>(){ - @Override - public void notify(Observable<RegistryChoiceMessage> sender, - RegistryChoiceMessage message) throws Exception { - try { - registry = message.getChosenRegistry(); - updateProfileModel(); - } catch (Exception e) { - logger.error("problem when handling notification of registry", e); - } - } - }); - } - public SharingPolicyChooserPanel() { - super(); - permissionBox.setPrototypeDisplayValue(LONG_STRING); - this.setLayout(new GridBagLayout()); - - GridBagConstraints gbc = new GridBagConstraints(); - - gbc.gridx = 0; - gbc.gridy = 0; - gbc.anchor = WEST; - gbc.fill = NONE; - this.add(new JLabel(SHARING_LABEL), gbc); - gbc.gridx = 1; - gbc.weightx = 1; - gbc.fill = BOTH; - this.add(permissionBox, gbc); - - permissionBox.setEditable(false); - } - - private void updateProfileModel() { - permissionMap.clear(); - permissionBox.removeAllItems(); - permissionBox.addItem(READING_MSG); - permissionBox.setEnabled(false); - new SharingPolicyUpdater().execute(); - } - - public SharingPolicy getChosenPermission() { - if (permissionBox.getSelectedIndex() < 0) - return null; - return permissionMap.get(permissionBox.getSelectedItem()); - } - - private class SharingPolicyUpdater extends SwingWorker<String, Object> { - @Override - protected String doInBackground() throws Exception { - List<SharingPolicy> sharingPolicies; - if (registry == null) - return null; - try { - sharingPolicies = registry.getPermissions(); - if (sharingPolicies == null) - return null; - } catch (ComponentException e) { - logger.error("problem getting permissions", e); - throw e; - } catch (NullPointerException e) { - logger.error("null pointer getting permissions", e); - throw e; - } - - for (SharingPolicy policy : sharingPolicies) - try { - permissionMap.put(policy.getName(), policy); - } catch (NullPointerException e) { - logger.error("problem getting name of policy", e); - } - return null; - } - - @Override - protected void done() { - permissionBox.removeAllItems(); - try { - get(); - for (String name : permissionMap.keySet()) - permissionBox.addItem(name); - if (!permissionMap.isEmpty()) { - String firstKey = permissionMap.firstKey(); - permissionBox.setSelectedItem(firstKey); - } else { - permissionBox.addItem(NO_PERMISSIONS_MSG); - } - } catch (InterruptedException | ExecutionException e) { - logger.error(e); - permissionBox.addItem("Unable to read permissions"); - } - permissionBox.setEnabled(!permissionMap.isEmpty()); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentDefaults.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentDefaults.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentDefaults.java deleted file mode 100644 index faad899..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentDefaults.java +++ /dev/null @@ -1,57 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import java.io.File; -import java.util.LinkedHashMap; -import java.util.Map; -import org.apache.taverna.configuration.app.ApplicationConfiguration; - -/** - * Factored out defaults location system. - * - * @author Donal Fellows - */ -public class ComponentDefaults { - public static final String REGISTRY_LIST = "REGISTRY_NAMES"; - private static final String LOCAL_NAME = "local registry"; - private static final String MYEXPERIMENT_NAME = "myExperiment"; - private static final String MYEXPERIMENT_SITE = "http://www.myexperiment.org"; - public static final String DEFAULT_REGISTRY_LIST = LOCAL_NAME + "," + MYEXPERIMENT_NAME; - - public static Map<String, String> getDefaultProperties() { - // Capacity = 3; we know that this is going to have 3 entries - Map<String, String> defaults = new LinkedHashMap<>(3); - defaults.put(LOCAL_NAME, calculateComponentsDirectoryPath()); - defaults.put(MYEXPERIMENT_NAME, MYEXPERIMENT_SITE); - defaults.put(REGISTRY_LIST, DEFAULT_REGISTRY_LIST); - return defaults; - } - - static ApplicationConfiguration config;//FIXME beaninject (and beanify!) - - public static String calculateComponentsDirectoryPath() { - return new File(config.getApplicationHomeDir(), "components").toURI() - .toASCIIString(); - } - - private ComponentDefaults() { - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreference.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreference.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreference.java deleted file mode 100644 index b7ff333..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreference.java +++ /dev/null @@ -1,143 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import static org.apache.commons.lang.StringUtils.join; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.ui.preference.ComponentDefaults.REGISTRY_LIST; -import static io.github.taverna_extras.component.ui.preference.ComponentDefaults.getDefaultProperties; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.SortedMap; -import java.util.TreeMap; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.ComponentFactory; -import io.github.taverna_extras.component.api.Registry; -import org.apache.taverna.configuration.AbstractConfigurable; -import org.apache.taverna.configuration.ConfigurationManager; - -/** - * @author alanrw - */ -public class ComponentPreference extends AbstractConfigurable { - public static final String DISPLAY_NAME = "Components"; - private final Logger logger = getLogger(ComponentPreference.class); - - private SortedMap<String, Registry> registryMap = new TreeMap<>(); - private ComponentFactory factory; - - public ComponentPreference(ConfigurationManager cm, ComponentFactory factory) { - super(cm); - this.factory = factory; - updateRegistryMap(); - } - - private void updateRegistryMap() { - registryMap.clear(); - - for (String key : getRegistryKeys()) { - String value = super.getProperty(key); - try { - registryMap.put(key, factory.getRegistry(new URL( - value))); - } catch (MalformedURLException e) { - logger.error("bogus url (" + value - + ") in configuration file", e); - } catch (ComponentException e) { - logger.error("failed to construct registry handle for " - + value, e); - } - } - } - - private String[] getRegistryKeys() { - String registryNamesConcatenated = super.getProperty(REGISTRY_LIST); - if (registryNamesConcatenated == null) - return getDefaultPropertyMap().keySet().toArray(new String[]{}); - return registryNamesConcatenated.split(","); - } - - @Override - public String getFilePrefix() { - return "Component"; - } - - @Override - public String getUUID() { - return "2317A297-2AE0-42B5-86DC-99C9B7C0524A"; - } - - /** - * @return the registryMap - */ - public SortedMap<String, Registry> getRegistryMap() { - return registryMap; - } - - public String getRegistryName(URL registryBase) { - // Trim trailing '/' characters to ensure match. - String base = registryBase.toString(); - while (base.endsWith("/")) - base = base.substring(0, base.length() - 1); - - for (Entry<String, Registry> entry : registryMap.entrySet()) - if (entry.getValue().getRegistryBaseString().equals(base)) - return entry.getKey(); - return base; - } - - public void setRegistryMap(SortedMap<String, Registry> registries) { - registryMap.clear(); - registryMap.putAll(registries); - super.clear(); - List<String> keyList = new ArrayList<>(); - for (Entry<String, Registry> entry : registryMap.entrySet()) { - String key = entry.getKey(); - keyList.add(key); - super.setProperty(key, entry.getValue().getRegistryBaseString()); - } - Collections.sort(keyList); - String registryNamesConcatenated = join(keyList, ","); - super.setProperty(REGISTRY_LIST, registryNamesConcatenated); - } - - @Override - public Map<String, String> getDefaultPropertyMap() { - return getDefaultProperties(); - } - - @Override - public String getDisplayName() { - return DISPLAY_NAME; - } - - @Override - public String getCategory() { - return "general"; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferencePanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferencePanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferencePanel.java deleted file mode 100644 index 4677c0c..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferencePanel.java +++ /dev/null @@ -1,300 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import static java.awt.GridBagConstraints.BOTH; -import static java.awt.GridBagConstraints.CENTER; -import static java.awt.GridBagConstraints.HORIZONTAL; -import static java.awt.GridBagConstraints.WEST; -import static javax.swing.JOptionPane.ERROR_MESSAGE; -import static javax.swing.JOptionPane.showMessageDialog; -import static javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN; -import static javax.swing.ListSelectionModel.SINGLE_SELECTION; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.ui.util.Utils.URL_PATTERN; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.io.File; -import java.awt.event.MouseEvent; -import java.net.MalformedURLException; -import java.net.URL; - -import javax.swing.AbstractAction; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.border.EmptyBorder; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.ComponentFactory; -import io.github.taverna_extras.component.api.Registry; -import org.apache.taverna.lang.ui.DeselectingButton; -import org.apache.taverna.lang.ui.ValidatingUserInputDialog; -import org.apache.taverna.workbench.helper.Helper; - -public class ComponentPreferencePanel extends JPanel { - private static final String BAD_URL_MESSAGE = "Invalid URL"; - private static final String SET_URL_MESSAGE = "Set the URL of the profile"; - private static final String HELP_LABEL = "Help"; - private static final String RESET_LABEL = "Reset"; - private static final String APPLY_LABEL = "Apply"; - private static final String ADD_REMOTE_TITLE = "Add Remote Component Registry"; - private static final String ADD_LOCAL_TITLE = "Add Local Component Registry"; - private static final String ADD_REMOTE_LABEL = "Add remote registry"; - private static final String ADD_LOCAL_LABEL = "Add local registry"; - private static final String REMOVE_LABEL = "Remove registry"; - private static final String TITLE = "Component registry management"; - private static final String VALIDATION_MESSAGE = "Set the registry name"; - private static final String EXCEPTION_MESSAGE = "Unable to access registry at "; - private static final String EXCEPTION_TITLE = "Component registry problem"; - private static final String INVALID_NAME = "Invalid registry name"; - private static final String DUPLICATE = "Duplicate registry name"; - private static final long serialVersionUID = 1310173658718093383L; - - private final Logger logger = getLogger(ComponentPreferencePanel.class); - - private ComponentFactory factory; - private ComponentPreference prefs; - private RegistryTableModel tableModel = new RegistryTableModel(); - - @SuppressWarnings("serial") - private JTable registryTable = new JTable(tableModel) { - @Override - public String getToolTipText(MouseEvent me) { - int row = rowAtPoint(me.getPoint()); - if (row >= 0) - return tableModel.getRowTooltipText(row); - return super.getToolTipText(me); - } - }; - - public ComponentPreferencePanel(ComponentFactory componentFactory, - ComponentPreference preferences) { - super(new GridBagLayout()); - factory = componentFactory; - prefs = preferences; - - GridBagConstraints gbc = new GridBagConstraints(); - - // Title describing what kind of settings we are configuring here - JTextArea descriptionText = new JTextArea(TITLE); - 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 = 1; - gbc.weightx = 1.0; - gbc.weighty = 0.0; - gbc.fill = HORIZONTAL; - add(descriptionText, gbc); - - gbc.gridy++; - gbc.insets = new Insets(10, 0, 0, 0); - - registryTable.getColumnModel().getColumn(0).setPreferredWidth(20); - registryTable.setAutoResizeMode(AUTO_RESIZE_LAST_COLUMN); - registryTable.setSelectionMode(SINGLE_SELECTION); - JScrollPane scrollPane = new JScrollPane(registryTable); - // registryTable.setFillsViewportHeight(true); - - gbc.weighty = 1.0; - gbc.fill = BOTH; - - add(scrollPane, gbc); - - // Add buttons panel - gbc.gridx = 0; - gbc.gridy++; - gbc.weightx = 0.0; - gbc.weighty = 0.0; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - gbc.anchor = CENTER; - gbc.insets = new Insets(10, 0, 0, 0); - add(createRegistryButtonPanel(), gbc); - - // Add buttons panel - gbc.gridx = 0; - gbc.gridy++; - gbc.weightx = 0.0; - gbc.weighty = 0.0; - gbc.gridwidth = 1; - gbc.fill = HORIZONTAL; - gbc.anchor = CENTER; - gbc.insets = new Insets(10, 0, 0, 0); - add(createButtonPanel(), gbc); - - setFields(); - } - - /** - * Create the buttons for managing the list of registries. - * @return - */ - @SuppressWarnings("serial") - private Component createRegistryButtonPanel() { - JPanel panel = new JPanel(); - panel.add(new DeselectingButton(new AbstractAction(REMOVE_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - remove(); - } - })); - panel.add(new DeselectingButton(new AbstractAction(ADD_LOCAL_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - addLocal(); - } - })); - panel.add(new DeselectingButton(new AbstractAction(ADD_REMOTE_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - addRemote(); - } - })); - return panel; - } - - /** - * Create the panel to contain the buttons - * - * @return - */ - @SuppressWarnings("serial") - private JPanel createButtonPanel() { - final JPanel panel = new JPanel(); - panel.add(new DeselectingButton(new AbstractAction(HELP_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - Helper.showHelp(panel); - } - })); - panel.add(new DeselectingButton(new AbstractAction(RESET_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - setFields(); - } - })); - panel.add(new DeselectingButton(new AbstractAction(APPLY_LABEL) { - @Override - public void actionPerformed(ActionEvent arg0) { - applySettings(); - setFields(); - } - })); - return panel; - } - - void remove() { - int selectedRow = registryTable.getSelectedRow(); - if (selectedRow != -1) - tableModel.removeRow(selectedRow); - } - - void addLocal() { - // Run the GUI - LocalRegistryPanel inputPanel = new LocalRegistryPanel(); - ValidatingUserInputDialog vuid = new ValidatingUserInputDialog( - ADD_LOCAL_TITLE, inputPanel); - vuid.addTextComponentValidation(inputPanel.getRegistryNameField(), - VALIDATION_MESSAGE, tableModel.getRegistryMap().keySet(), - DUPLICATE, "[\\p{L}\\p{Digit}_.]+", INVALID_NAME); - vuid.setSize(new Dimension(400, 250)); - if (!vuid.show(ComponentPreferencePanel.this)) - return; - - // Add the local registry - String location = inputPanel.getLocationField().getText(); - File newDir = new File(location); - try { - tableModel.insertRegistry(inputPanel.getRegistryNameField() - .getText(), getLocalRegistry(newDir)); - } catch (MalformedURLException e) { - logger.error("bad url provided by user", e); - showMessageDialog(null, EXCEPTION_MESSAGE + location, - EXCEPTION_TITLE, ERROR_MESSAGE); - } catch (ComponentException e) { - logger.error("problem creating local registry", e); - showMessageDialog(null, EXCEPTION_MESSAGE + location, - EXCEPTION_TITLE, ERROR_MESSAGE); - } - } - - void addRemote() { - RemoteRegistryPanel inputPanel = new RemoteRegistryPanel(); - ValidatingUserInputDialog vuid = new ValidatingUserInputDialog( - ADD_REMOTE_TITLE, inputPanel); - vuid.addTextComponentValidation(inputPanel.getRegistryNameField(), - VALIDATION_MESSAGE, tableModel.getRegistryMap().keySet(), - DUPLICATE, "[\\p{L}\\p{Digit}_.]+", INVALID_NAME); - vuid.addTextComponentValidation(inputPanel.getLocationField(), - SET_URL_MESSAGE, null, "", URL_PATTERN, BAD_URL_MESSAGE); - vuid.setSize(new Dimension(400, 250)); - if (!vuid.show(ComponentPreferencePanel.this)) - return; - - String location = inputPanel.getLocationField().getText(); - try { - tableModel.insertRegistry(inputPanel.getRegistryNameField() - .getText(), getRemoteRegistry(location)); - } catch (MalformedURLException e) { - logger.error("bad url provided by user", e); - showMessageDialog(null, EXCEPTION_MESSAGE + location, - EXCEPTION_TITLE, ERROR_MESSAGE); - } catch (ComponentException e) { - showMessageDialog(null, EXCEPTION_MESSAGE + location, - EXCEPTION_TITLE, ERROR_MESSAGE); - logger.error("problem creating remote registry", e); - } - } - - Registry getLocalRegistry(File location) throws ComponentException, - MalformedURLException { - return factory.getRegistry(location.toURI().toURL()); - } - - Registry getRemoteRegistry(String location) throws MalformedURLException, - ComponentException { - URL url = new URL(location); - if (url.getProtocol() == null || url.getProtocol().equals("file")) - throw new MalformedURLException( - "may not use relative or local URLs for locating registry"); - return factory.getRegistry(url); - } - - private void applySettings() { - prefs.setRegistryMap(tableModel.getRegistryMap()); - } - - private void setFields() { - tableModel.setRegistryMap(prefs.getRegistryMap()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferenceUIFactory.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferenceUIFactory.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferenceUIFactory.java deleted file mode 100644 index 03ae030..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/ComponentPreferenceUIFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import javax.swing.JPanel; -import org.apache.taverna.configuration.Configurable; -import org.apache.taverna.configuration.ConfigurationUIFactory; - -/** - * @author alanrw - */ -public class ComponentPreferenceUIFactory implements ConfigurationUIFactory { - public static final String DISPLAY_NAME = "Components"; - - private JPanel configPanel;//FIXME beaninject - private ComponentPreference prefs;// FIXME beaninject - - public ComponentPreferenceUIFactory() { - super(); - } - - public void setConfigPanel(JPanel configPanel) { - this.configPanel = configPanel; - } - - public void setPreferences(ComponentPreference pref) { - this.prefs = pref; - } - - @Override - public boolean canHandle(String uuid) { - return uuid.equals(prefs.getUUID()); - } - - @Override - public Configurable getConfigurable() { - return prefs; - } - - @Override - public JPanel getConfigurationPanel() { - return configPanel; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/LocalRegistryPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/LocalRegistryPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/LocalRegistryPanel.java deleted file mode 100644 index b9ba05e..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/LocalRegistryPanel.java +++ /dev/null @@ -1,132 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import static java.awt.GridBagConstraints.HORIZONTAL; -import static java.awt.GridBagConstraints.NONE; -import static java.awt.GridBagConstraints.WEST; -import static javax.swing.JFileChooser.APPROVE_OPTION; -import static javax.swing.JFileChooser.DIRECTORIES_ONLY; -import static org.apache.log4j.Logger.getLogger; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.io.IOException; - -import javax.swing.AbstractAction; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; - -import org.apache.log4j.Logger; -import org.apache.taverna.lang.ui.DeselectingButton; - -/** - * @author alanrw - * - */ -public class LocalRegistryPanel extends JPanel { - private static final String BROWSE_LABEL = "Browse"; - private static final String LOCATION_LABEL = "Location:"; - private static final String NAME_LABEL = "Name:"; - private static final long serialVersionUID = 732945735813617327L; - - private final Logger logger = getLogger(LocalRegistryPanel.class); - - private JTextField registryNameField = new JTextField(20); - private JTextField locationField = new JTextField(20); - - public LocalRegistryPanel() { - super(new GridBagLayout()); - - setBorder(new EmptyBorder(10, 10, 10, 10)); - - GridBagConstraints constraints = new GridBagConstraints(); - - constraints.anchor = WEST; - constraints.gridx = 0; - constraints.gridy = 0; - constraints.ipadx = 20; - add(new JLabel(NAME_LABEL), constraints); - - constraints.gridx = 1; - constraints.gridwidth = 2; - constraints.ipadx = 0; - constraints.weightx = 1d; - constraints.fill = HORIZONTAL; - add(registryNameField, constraints); - - constraints.gridy++; - constraints.gridx = 0; - constraints.ipadx = 20; - constraints.fill = NONE; - add(new JLabel(LOCATION_LABEL), constraints); - - constraints.gridx = 1; - constraints.gridwidth = 2; - constraints.ipadx = 0; - constraints.weightx = 1d; - constraints.fill = HORIZONTAL; - add(locationField, constraints); - - constraints.gridy++; - constraints.gridx = 0; - constraints.ipadx = 20; - constraints.fill = NONE; - add(new DeselectingButton(new AbstractAction(BROWSE_LABEL) { - private static final long serialVersionUID = -8676803966947261009L; - - @Override - public void actionPerformed(ActionEvent arg0) { - pickDirectory(); - } - }), constraints); - } - - private void pickDirectory() { - JFileChooser chooser = new JFileChooser(); - chooser.setFileSelectionMode(DIRECTORIES_ONLY); - int returnVal = chooser.showOpenDialog(LocalRegistryPanel.this); - try { - if (returnVal == APPROVE_OPTION) - locationField.setText(chooser.getSelectedFile() - .getCanonicalPath()); - } catch (IOException e) { - logger.error("unexpected filesystem problem", e); - } - } - - /** - * @return the registryNameField - */ - public JTextField getRegistryNameField() { - return registryNameField; - } - - /** - * @return the locationField - */ - public JTextField getLocationField() { - return locationField; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RegistryTableModel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RegistryTableModel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RegistryTableModel.java deleted file mode 100644 index c3b5f04..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RegistryTableModel.java +++ /dev/null @@ -1,86 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -import static java.lang.String.format; - -import java.util.Map.Entry; -import java.util.SortedMap; -import java.util.TreeMap; - -import javax.swing.table.DefaultTableModel; - -import io.github.taverna_extras.component.api.Registry; - -/** - * @author alanrw - * - */ -public class RegistryTableModel extends DefaultTableModel { - private static final long serialVersionUID = -7789666945764974370L; - private SortedMap<String, Registry> registryMap = new TreeMap<String, Registry>(); - - public RegistryTableModel() { - super(new String[] { "Registry name", "Registry location" }, 0); - } - - public void setRegistryMap(SortedMap<String, Registry> registries) { - registryMap.clear(); - registryMap.putAll(registries); - updateRows(); - } - - public void updateRows() { - super.setRowCount(0); - for (Entry<String, Registry> entry : registryMap.entrySet()) - super.addRow(new Object[] { entry.getKey(), - entry.getValue().getRegistryBaseString() }); - } - - @Override - public boolean isCellEditable(int row, int column) { - return false; - } - - public String getRowTooltipText(int row) { - Registry registry = registryMap.get(getValueAt(row, 0)); - return format("This is a %s registry.", registry.getRegistryTypeName()); - } - - @Override - public void removeRow(int row) { - String key = (String) getValueAt(row, 0); - registryMap.remove(key); - super.removeRow(row); - } - - public void insertRegistry(String name, Registry newRegistry) { - registryMap.put(name, newRegistry); - updateRows(); - } - - /** - * @return the registryMap - */ - public SortedMap<String, Registry> getRegistryMap() { - return registryMap; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RemoteRegistryPanel.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RemoteRegistryPanel.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RemoteRegistryPanel.java deleted file mode 100644 index 1f98933..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/preference/RemoteRegistryPanel.java +++ /dev/null @@ -1,94 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.preference; - -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 javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; - -/** - * @author alanrw - * - */ -public class RemoteRegistryPanel extends JPanel { - private static final String LOCATION_LABEL = "Location:"; - private static final String NAME_LABEL = "Name:"; - private static final long serialVersionUID = 8833815753329010062L; - - private JTextField registryNameField = new JTextField(20); - private JTextField locationField = new JTextField(20); - - public RemoteRegistryPanel() { - super(new GridBagLayout()); - - setBorder(new EmptyBorder(10, 10, 10, 10)); - - GridBagConstraints constraints = new GridBagConstraints(); - - constraints.anchor = WEST; - constraints.gridx = 0; - constraints.gridy = 0; - constraints.ipadx = 20; - add(new JLabel(NAME_LABEL), constraints); - - constraints.gridx = 1; - constraints.gridwidth = 2; - constraints.ipadx = 0; - constraints.weightx = 1d; - constraints.fill = HORIZONTAL; - add(registryNameField, constraints); - - constraints.gridy++; - constraints.gridx = 0; - constraints.ipadx = 20; - constraints.fill = NONE; - add(new JLabel(LOCATION_LABEL), constraints); - - constraints.gridx = 1; - constraints.gridwidth = 2; - constraints.ipadx = 0; - constraints.weightx = 1d; - constraints.fill = HORIZONTAL; - add(locationField, constraints); - } - - /** - * @return the registryNameField - */ - public JTextField getRegistryNameField() { - return registryNameField; - } - - /** - * @return the locationField - */ - public JTextField getLocationField() { - return locationField; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceDesc.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceDesc.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceDesc.java deleted file mode 100644 index 03b2eda..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceDesc.java +++ /dev/null @@ -1,174 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.serviceprovider; - -import static java.util.Arrays.asList; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.COMPONENT_NAME; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.COMPONENT_VERSION; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.FAMILY_NAME; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.REGISTRY_BASE; -import static io.github.taverna_extras.component.ui.ComponentConstants.ACTIVITY_URI; - -import java.net.URI; -import java.net.URL; -import java.util.Arrays; -import java.util.List; - -import javax.swing.Icon; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.ComponentFactory; -import io.github.taverna_extras.component.api.Version; -import io.github.taverna_extras.component.api.Version.ID; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.taverna.servicedescriptions.ServiceDescription; - -public class ComponentServiceDesc extends ServiceDescription { - private static Logger logger = getLogger(ComponentServiceDesc.class); - - private Version.ID identification; - private final ComponentPreference preference; - private final ComponentFactory factory; - private final ComponentServiceIcon iconProvider; - - public ComponentServiceDesc(ComponentPreference preference, - ComponentFactory factory, ComponentServiceIcon iconProvider, - Version.ID identification) { - this.preference = preference; - this.factory = factory; - this.identification = identification; - this.iconProvider = iconProvider; - } - - /** - * The configuration bean which is to be used for configuring the - * instantiated activity. This is built from the component identifier. - */ - @Override - public Configuration getActivityConfiguration() { - Configuration config = new Configuration(); - installActivityConfiguration(config); - return config; - } - - /** - * Make the given activity be configured to be using the component that this - * class identifies. - */ - public void installActivityConfiguration(Activity activity) { - installActivityConfiguration(activity.getConfiguration()); - } - - /** - * Update the given configuration to have the fields for the component that - * this class identifies. - */ - public void installActivityConfiguration(Configuration config) { - ObjectNode c = config.getJsonAsObjectNode(); - ID id = getIdentification(); - c.put(REGISTRY_BASE, id.getRegistryBase().toExternalForm()); - c.put(FAMILY_NAME, id.getFamilyName()); - c.put(COMPONENT_NAME, id.getComponentName()); - c.put(COMPONENT_VERSION, id.getComponentVersion()); - config.setJson(c); - } - - /** - * An icon to represent this service description in the service palette. - */ - @Override - public Icon getIcon() { - return iconProvider.getIcon(); - } - - /** - * The display name that will be shown in service palette and will be used - * as a template for processor name when added to workflow. - */ - @Override - public String getName() { - return getIdentification().getComponentName(); - } - - /** - * The path to this service description in the service palette. Folders will - * be created for each element of the returned path. - */ - @Override - public List<String> getPath() { - return asList("Components", - preference.getRegistryName(identification.getRegistryBase()), - identification.getFamilyName()); - } - - /** - * Returns a list of data values uniquely identifying this component - * description (i.e., no duplicates). - */ - @Override - protected List<? extends Object> getIdentifyingData() { - return Arrays.asList(identification.getRegistryBase(), - identification.getFamilyName(), - identification.getComponentName()); - } - - @Override - public String toString() { - return "Component " + getName(); - } - - /** - * @return the identification - */ - public Version.ID getIdentification() { - return identification; - } - - /** - * @param identification - * the identification to set - */ - public void setIdentification(Version.ID identification) { - this.identification = identification; - } - - public URL getHelpURL() { - try { - return factory.getVersion(getIdentification()).getHelpURL(); - } catch (ComponentException e) { - logger.error( - "failed to get component in order to determine its help URL", - e); - return null; - } - } - - @Override - public URI getActivityType() { - return ACTIVITY_URI; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceIcon.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceIcon.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceIcon.java deleted file mode 100644 index 16e0d5f..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceIcon.java +++ /dev/null @@ -1,51 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.serviceprovider; - -import static io.github.taverna_extras.component.ui.serviceprovider.Service.COMPONENT_ACTIVITY_URI; - -import java.net.URI; - -import javax.swing.Icon; -import javax.swing.ImageIcon; -import org.apache.taverna.workbench.activityicons.ActivityIconSPI; - -public class ComponentServiceIcon implements ActivityIconSPI { - private static class Init { - private static Icon icon = new ImageIcon( - ComponentServiceIcon.class.getResource("/brick.png")); - } - - @Override - public int canProvideIconScore(URI activityType) { - if (activityType.equals(COMPONENT_ACTIVITY_URI)) - return DEFAULT_ICON + 1; - return NO_ICON; - } - - @Override - public Icon getIcon(URI activityType) { - return Init.icon; - } - - public Icon getIcon() { - return Init.icon; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProvider.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProvider.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProvider.java deleted file mode 100644 index d5350d0..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProvider.java +++ /dev/null @@ -1,236 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.serviceprovider; - -import static java.util.Arrays.asList; -import static javax.swing.JOptionPane.OK_CANCEL_OPTION; -import static javax.swing.JOptionPane.OK_OPTION; -import static javax.swing.JOptionPane.showConfirmDialog; -import static org.apache.log4j.Logger.getLogger; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.FAMILY_NAME; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.REGISTRY_BASE; -import static io.github.taverna_extras.component.ui.ComponentConstants.ACTIVITY_URI; - -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.SortedMap; - -import javax.swing.Icon; - -import org.apache.log4j.Logger; -import io.github.taverna_extras.component.api.Component; -import io.github.taverna_extras.component.api.ComponentException; -import io.github.taverna_extras.component.api.ComponentFactory; -import io.github.taverna_extras.component.api.Family; -import io.github.taverna_extras.component.api.Registry; -import io.github.taverna_extras.component.api.Version; -import io.github.taverna_extras.component.ui.panel.RegistryAndFamilyChooserPanel; -import io.github.taverna_extras.component.ui.preference.ComponentPreference; -import io.github.taverna_extras.component.ui.util.Utils; - -import org.apache.taverna.scufl2.api.common.Visitor; -import org.apache.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.taverna.servicedescriptions.AbstractConfigurableServiceProvider; -import org.apache.taverna.servicedescriptions.CustomizedConfigurePanelProvider; -import org.apache.taverna.servicedescriptions.ServiceDescriptionProvider; - -public class ComponentServiceProvider extends - AbstractConfigurableServiceProvider implements - CustomizedConfigurePanelProvider { - static final URI providerId = URI - .create("http://taverna.sf.net/2012/service-provider/component"); - private static Logger logger = getLogger(ComponentServiceProvider.class); - - private final ComponentFactory factory; - private final ComponentPreference prefs; - private final ComponentServiceIcon iconProvider; - private final Utils utils; - - public ComponentServiceProvider(ComponentFactory factory, - ComponentPreference prefs, ComponentServiceIcon iconProvider, - Utils utils) { - super(makeConfig(null, null)); - this.factory = factory; - this.prefs = prefs; - this.iconProvider = iconProvider; - this.utils = utils; - } - - private static class Conf { - URL registryBase; - String familyName; - - Conf(Configuration config) throws MalformedURLException { - ObjectNode node = config.getJsonAsObjectNode(); - JsonNode item = node.get(REGISTRY_BASE); - if (item != null && !item.isNull()) - registryBase = URI.create(item.textValue()).toURL(); - item = node.get(FAMILY_NAME); - if (item != null && !item.isNull()) - familyName = item.textValue(); - } - } - - /** - * Do the actual search for services. Return using the callBack parameter. - */ - @Override - public void findServiceDescriptionsAsync( - FindServiceDescriptionsCallBack callBack) { - Conf config; - - Registry registry; - try { - config = new Conf(getConfiguration()); - registry = factory.getRegistry(config.registryBase); - } catch (ComponentException | MalformedURLException e) { - logger.error("failed to get registry API", e); - callBack.fail("Unable to read components", e); - return; - } - - try { - List<ComponentServiceDesc> results = new ArrayList<>(); - for (Family family : registry.getComponentFamilies()) { - // TODO get check on family name in there - if (family.getName().equals(config.familyName)) - for (Component component : family.getComponents()) - try { - SortedMap<Integer, Version> versions = component - .getComponentVersionMap(); - ComponentServiceDesc newDesc = new ComponentServiceDesc( - prefs, factory, iconProvider, versions.get( - versions.lastKey()).getID()); - results.add(newDesc); - } catch (Exception e) { - logger.error("problem getting service descriptor", - e); - } - callBack.partialResults(results); - callBack.finished(); - } - } catch (ComponentException e) { - logger.error("problem querying registry", e); - callBack.fail("Unable to read components", e); - } - } - - /** - * Icon for service provider - */ - @Override - public Icon getIcon() { - return iconProvider.getIcon(); - } - - /** - * Name of service provider, appears in right click for 'Remove service - * provider' - */ - @Override - public String getName() { - return "Component service"; - } - - @Override - public String toString() { - return getName(); - } - - @Override - public String getId() { - return providerId.toASCIIString(); - } - - @Override - protected List<? extends Object> getIdentifyingData() { - try { - Conf config = new Conf(getConfiguration()); - return asList(config.registryBase.toString(), config.familyName); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - @Override - public void createCustomizedConfigurePanel( - CustomizedConfigureCallBack callBack) { - RegistryAndFamilyChooserPanel panel = new RegistryAndFamilyChooserPanel(prefs); - - if (showConfirmDialog(null, panel, "Component family import", - OK_CANCEL_OPTION) != OK_OPTION) - return; - - Registry registry = panel.getChosenRegistry(); - Family family = panel.getChosenFamily(); - if (registry == null || family == null) - return; - callBack.newProviderConfiguration(makeConfig( - registry.getRegistryBaseString(), family.getName())); - } - - private static Configuration makeConfig(String registryUrl, - String familyName) { - ObjectNode cfg = JsonNodeFactory.instance.objectNode(); - cfg.put(REGISTRY_BASE, registryUrl); - cfg.put(FAMILY_NAME, familyName); - Configuration conf = new Configuration(); - conf.setJson(cfg); - conf.setType(providerId); - return conf; - } - - @Override - public ServiceDescriptionProvider newInstance() { - return new ComponentServiceProvider(factory, prefs, iconProvider, utils); - } - - @Override - public URI getType() { - return ACTIVITY_URI; - } - - @Override - public void setType(URI type) { - throw new UnsupportedOperationException(); - } - - @Override - public boolean accept(Visitor visitor) { - // TODO Auto-generated method stub - return false; - } - - public void refreshProvidedComponent(Version.ID ident) { - try { - utils.refreshComponentServiceProvider(new ComponentServiceProviderConfig( - ident).getConfiguration()); - } catch (Exception e) { - logger.error("Unable to refresh service panel", e); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProviderConfig.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProviderConfig.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProviderConfig.java deleted file mode 100644 index 72b7458..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/ComponentServiceProviderConfig.java +++ /dev/null @@ -1,88 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.serviceprovider; - -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.FAMILY_NAME; -import static io.github.taverna_extras.component.api.config.ComponentPropertyNames.REGISTRY_BASE; -import static io.github.taverna_extras.component.ui.serviceprovider.ComponentServiceProvider.providerId; - -import java.net.URL; - -import io.github.taverna_extras.component.api.Family; -import io.github.taverna_extras.component.api.Version; - -import org.apache.taverna.scufl2.api.configurations.Configuration; - -public class ComponentServiceProviderConfig { - private URL registryBase; - private String familyName; - - public ComponentServiceProviderConfig() { - } - - public ComponentServiceProviderConfig(Family family) { - registryBase = family.getComponentRegistry().getRegistryBase(); - familyName = family.getName(); - } - - public ComponentServiceProviderConfig(Version.ID ident) { - registryBase = ident.getRegistryBase(); - familyName = ident.getFamilyName(); - } - - /** - * @return the registryBase - */ - public URL getRegistryBase() { - return registryBase; - } - - /** - * @param registryBase - * the registryBase to set - */ - public void setRegistryBase(URL registryBase) { - this.registryBase = registryBase; - } - - /** - * @return the familyName - */ - public String getFamilyName() { - return familyName; - } - - /** - * @param familyName - * the familyName to set - */ - public void setFamilyName(String familyName) { - this.familyName = familyName; - } - - public Configuration getConfiguration() { - Configuration c = new Configuration(); - c.getJsonAsObjectNode().put(REGISTRY_BASE, - registryBase.toExternalForm()); - c.getJsonAsObjectNode().put(FAMILY_NAME, familyName); - c.setType(providerId); - return c; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/Service.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/Service.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/Service.java deleted file mode 100644 index 32c606e..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/serviceprovider/Service.java +++ /dev/null @@ -1,27 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.serviceprovider; - -import java.net.URI; - -public interface Service { - URI COMPONENT_ACTIVITY_URI = URI - .create("http://ns.taverna.org.uk/2010/activity/component"); -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/b7b61e71/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/util/ComponentFileType.java ---------------------------------------------------------------------- diff --git a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/util/ComponentFileType.java b/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/util/ComponentFileType.java deleted file mode 100644 index ba4801e..0000000 --- a/taverna-component-activity-ui/src/main/java/org/apache/taverna/component/ui/util/ComponentFileType.java +++ /dev/null @@ -1,51 +0,0 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - -package io.github.taverna_extras.component.ui.util; - -import org.apache.taverna.workbench.file.FileType; - -/** - * The type of components. - * - * @author alanrw - */ -public class ComponentFileType extends FileType { - // TODO Change mimetype for sculf2? - static final String COMPONENT_MIMETYPE = "application/vnd.taverna.component"; - - private ComponentFileType() { - } - - @Override - public String getDescription() { - return "Taverna component"; - } - - // Not really used - @Override - public String getExtension() { - return "component"; - } - - @Override - public String getMimeType() { - return COMPONENT_MIMETYPE; - } -}
