You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 21:45:42 UTC
[11/51] [partial] incubator-taverna-workbench git commit: temporarily
empty repository
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/search_results/ServiceListCellRenderer.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/search_results/ServiceListCellRenderer.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/search_results/ServiceListCellRenderer.java
deleted file mode 100644
index eafe095..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/search_results/ServiceListCellRenderer.java
+++ /dev/null
@@ -1,291 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.search_results;
-
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.ImageIcon;
-import javax.swing.JLabel;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.biocatalogue.x2009.xml.rest.Location;
-import org.biocatalogue.x2009.xml.rest.ResourceLinkWithString;
-import org.biocatalogue.x2009.xml.rest.Service;
-import org.biocatalogue.x2009.xml.rest.ServiceSummary.Provider;
-
-import net.sf.taverna.biocatalogue.model.LoadingExpandedResource;
-import net.sf.taverna.biocatalogue.model.LoadingResource;
-import net.sf.taverna.biocatalogue.model.Resource;
-import net.sf.taverna.biocatalogue.model.Resource.TYPE;
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.biocatalogue.model.Util;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check.ServiceMonitoringStatusInterpreter;
-
-
-/**
- * This list cell renderer is will display (web) Service items in the search results
- * list box.
- *
- * In the collapsed state, four data items will be shown per service: status (as per monitoring data),
- * service type (SOAP / REST), the name of the service and its description.
- *
- * In the expanded state, other details are added to the ones above: service categories, locations,
- * endpoints and providers.
- *
- * @author Sergejs Aleksejevs
- */
-@SuppressWarnings("serial")
-public class ServiceListCellRenderer extends ExpandableOnDemandLoadedListCellRenderer
-{
- private JLabel jlTypeIcon;
- private JLabel jlItemStatus;
- private JLabel jlItemTitle;
- private JLabel jlDescription;
-
- private GridBagConstraints c;
-
-
- public ServiceListCellRenderer() {
- /* do nothing */
- }
-
-
- /**
- * This entry can be in one of two states:
- * -- containing only the name of the resource and NOT loading further details;
- * -- containing only the name of the resource and LOADING further details.
- *
- * @param itemToRender
- * @return
- */
- protected GridBagConstraints prepareInitiallyLoadingEntry(Object itemToRender)
- {
- TYPE resourceType = determineResourceType(itemToRender);
- LoadingResource resource = (LoadingResource)itemToRender;
-
- jlTypeIcon = new JLabel(resourceType.getIcon());
- jlItemStatus = new JLabel(ResourceManager.getImageIcon(ResourceManager.SERVICE_STATUS_UNKNOWN_ICON));
-
- jlItemTitle = new JLabel(Resource.getDisplayNameForResource(resource), JLabel.LEFT);
- jlItemTitle.setForeground(Color.decode("#AD0000")); // very dark red
- jlItemTitle.setFont(jlItemTitle.getFont().deriveFont(Font.PLAIN, jlItemTitle.getFont().getSize() + 2));
-
- jlDescription = resource.isLoading() ? loaderBarAnimationGrey : loaderBarAnimationGreyStill;
-
- return (arrangeLayout(false));
- }
-
-
- /**
- *
- * @param itemToRender
- * @param expandedView <code>true</code> to indicate that this method generates the top
- * fragment of the expanded list entry for this SOAP operation / REST method.
- * @return
- */
- protected GridBagConstraints prepareLoadedEntry(Object itemToRender, boolean selected)
- {
- TYPE resourceType = determineResourceType(itemToRender);
- Service service = (Service)itemToRender;;
-
- // service type
- if (service.getServiceTechnologyTypes() != null && service.getServiceTechnologyTypes().getTypeList().size() > 0)
- {
- if (service.getServiceTechnologyTypes().getTypeList().size() > 1 &&
- !(service.getServiceTechnologyTypes().getTypeList().get(0).toString().equalsIgnoreCase("SOAP")) &&
- service.getServiceTechnologyTypes().getTypeList().get(1).toString().equalsIgnoreCase("SOAPLAB")
- )
- {
- jlTypeIcon = new JLabel(ResourceManager.getImageIcon(ResourceManager.SERVICE_TYPE_MULTITYPE_ICON));
- }
- else if (service.getServiceTechnologyTypes().getTypeArray(0).toString().equalsIgnoreCase("SOAP")) {
- jlTypeIcon = new JLabel(ResourceManager.getImageIcon(ResourceManager.SERVICE_TYPE_SOAP_ICON));
- }
- else if (service.getServiceTechnologyTypes().getTypeArray(0).toString().equalsIgnoreCase("REST")) {
- jlTypeIcon = new JLabel(ResourceManager.getImageIcon(ResourceManager.SERVICE_TYPE_REST_ICON));
- }
- }
- else {
- // can't tell the type - just show as a service of no particular type
- jlTypeIcon = new JLabel(resourceType.getIcon());
- }
-
-
- // service status
- jlItemStatus = new JLabel(ServiceMonitoringStatusInterpreter.getStatusIcon(service, true));
-
- jlItemTitle = new JLabel(Resource.getDisplayNameForResource(service), JLabel.LEFT);
- jlItemTitle.setForeground(Color.decode("#AD0000")); // very dark red
- jlItemTitle.setFont(jlItemTitle.getFont().deriveFont(Font.PLAIN, jlItemTitle.getFont().getSize() + 2));
-
- int descriptionMaxLength = DESCRIPTION_MAX_LENGTH_EXPANDED;
- String strDescription = Util.stripAllHTML(service.getDescription());
- strDescription = (strDescription == null || strDescription.length() == 0 ?
- "<font color=\"gray\">no description</font>" :
- StringEscapeUtils.escapeHtml(Util.ensureLineLengthWithinString(strDescription, LINE_LENGTH, false)));
-
- if (strDescription.length() > descriptionMaxLength) {
- strDescription = strDescription.substring(0, descriptionMaxLength) + "<font color=\"gray\">(...)</font>";
- }
- strDescription = "<html><b>Description: </b>" + strDescription + "</html>";
- jlDescription = new JLabel(strDescription);
-
- return (arrangeLayout(true));
- }
-
-
- /**
- * @return Final state of the {@link GridBagConstraints} instance
- * that was used to lay out components in the panel.
- */
- private GridBagConstraints arrangeLayout(boolean showActionButtons)
- {
- // POPULATE PANEL WITH PREPARED COMPONENTS
- this.setLayout(new GridBagLayout());
- c = new GridBagConstraints();
- c.anchor = GridBagConstraints.NORTHWEST;
- c.fill = GridBagConstraints.HORIZONTAL;
-
- c.gridx = 0;
- c.gridy = 0;
- c.weightx = 0;
- c.insets = new Insets(10, 6, 6, 3);
- this.add(jlTypeIcon, c);
-
- c.gridx++;
- c.insets = new Insets(10, 3, 6, 3);
- this.add(jlItemStatus, c);
-
- c.gridx++;
- c.weightx = 1.0;
- c.insets = new Insets(10, 3, 6, 3);
- this.add(jlItemTitle, c);
-
- if (showActionButtons) {
- c.gridx++;
- c.gridheight = 3;
- c.weightx = 0;
- c.weighty = 1.0;
- jlExpand = new JLabel(ResourceManager.getImageIcon(ResourceManager.FOLD_ICON));
- this.add(jlExpand, c);
- }
-
- c.gridx = 2;
- c.gridy++;
- c.gridheight = 1;
- c.weightx = 1.0;
- c.weighty = 0;
- c.insets = new Insets(3, 3, 3, 3);
- this.add(jlDescription, c);
-
- return (c);
- }
-
-
-
- protected void prepareLoadingExpandedEntry(Object itemToRender)
- {
- LoadingExpandedResource expandedResource = (LoadingExpandedResource) itemToRender;
- GridBagConstraints c = prepareLoadedEntry(expandedResource.getAssociatedObj(), false);
-
- if (expandedResource.isLoading())
- {
- c.gridx = 0;
- c.gridy++;
- c.gridwidth = 3;
- c.anchor = GridBagConstraints.CENTER;
- c.fill = GridBagConstraints.HORIZONTAL;
- c.weightx = 1.0;
- this.add(loaderBarAnimationOrange, c);
- }
- else
- {
- // *** additional data for this Web Service operations ***
- Service service = (Service) expandedResource.getAssociatedObj();
-
-
- // -- categories --
- int categoryCount = service.getSummary().getCategoryList().size();
- String categoryString = "";
- if (categoryCount > 0) {
- List<String> categoryNames = new ArrayList<String>();
- for (ResourceLinkWithString category : service.getSummary().getCategoryList()) {
- categoryNames.add(category.getStringValue());
- }
- categoryString = "<html><b>" + Util.pluraliseNoun("Category", categoryCount) + ": </b>" + StringEscapeUtils.escapeHtml(Util.join(categoryNames, ", ")) + "</html>";
- }
- else {
- categoryString = "<html><b>Category: </b><font color=\"gray\">unknown</font></html>";
- }
-
- c.gridy++;
- this.add(new JLabel(categoryString),c);
-
-
- // -- endpoints --
- int endpointCount = service.getSummary().getEndpointList().size();
- String endpointString = "";
- if (endpointCount > 0) {
- endpointString = "<html><b>" + Util.pluraliseNoun("Endpoint", endpointCount) + ": </b>" +
- StringEscapeUtils.escapeHtml(Util.join(service.getSummary().getEndpointList(), ", ")) + "</html>";
- }
- else {
- endpointString = "<html><b>Endpoint: </b><font color=\"gray\">unknown</font></html>";
- }
-
- c.gridy++;
- this.add(new JLabel(endpointString), c);
-
-
- // -- providers --
- int providerCount = service.getSummary().getProviderList().size();
- String providerString = "";
- if (providerCount > 0) {
- List<String> providerNames = new ArrayList<String>();
- for (Provider serviceProvider : service.getSummary().getProviderList()) {
- providerNames.add(serviceProvider.getName());
- }
- providerString = "<html><b>" + Util.pluraliseNoun("Provider", providerCount) + ": </b>" + StringEscapeUtils.escapeHtml(Util.join(providerNames, ", ")) + "</html>";
- }
- else {
- providerString = "<html><b>Provider: </b><font color=\"gray\">unknown</font></html>";
- }
-
- c.gridy++;
- this.add(new JLabel(providerString),c);
-
-
- // -- locations --
- int locationCount = service.getSummary().getLocationList().size();
- String locationString = "";
- List<String> locations = new ArrayList<String>();
- if (locationCount > 0) {
- for (Location location : service.getSummary().getLocationList()) {
- List<String> locationNameFragments = new ArrayList<String>();
- locationNameFragments.add(location.getCity());
- locationNameFragments.add(location.getCountry());
- locations.add(Util.join(locationNameFragments, ", "));
- }
- }
- locationString = "<html><b>" + Util.pluraliseNoun("Location", locations.size()) + ": </b>" +
- (locations.size() > 0 ? StringEscapeUtils.escapeHtml(Util.join(locations, "; ")) : "<font color=\"gray\">unknown</font>") +
- "</html>";
-
- c.gridy++;
- c.insets = new Insets(3, 3, 12, 3);
- this.add(new JLabel(locationString),c);
- }
- }
-
-
-@Override
-boolean shouldBeHidden(Object itemToRender) {
- return false;
-}
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/JTriStateTree.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/JTriStateTree.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/JTriStateTree.java
deleted file mode 100644
index 304e50a..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/JTriStateTree.java
+++ /dev/null
@@ -1,631 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-import java.awt.Component;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JPopupMenu;
-import javax.swing.JTree;
-import javax.swing.SwingUtilities;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.MutableTreeNode;
-import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
-
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
-
-
-/**
- * @author Sergejs Aleksejevs
- */
-@SuppressWarnings("serial")
-public class JTriStateTree extends JTree
-{
- // This is used to manage location and padding of tooltips on long items
- // that don't fit into the visible part of this tree.
- private static final int JCHECKBOX_WIDTH = 16;
-
- private JTriStateTree instanceOfSelf;
- private JPopupMenu contextualMenu;
-
- private TriStateTreeNode root;
-
- // will enable/disable checkboxes - when disabled the selection
- // will remain, but will appear as read-only
- private boolean bCheckingEnabled;
-
- private List<Action> contextualMenuActions;
- private Action expandAllAction;
- private Action collapseAllAction;
- private Action selectAllAction;
- private Action deselectAllAction;
-
- private Set<TriStateTreeCheckingListener> checkingListeners;
-
-
- @SuppressWarnings("serial")
-public JTriStateTree(TriStateTreeNode root)
- {
- super(root);
- this.root = root;
- this.instanceOfSelf = this;
-
- // by default checking is allowed
- this.bCheckingEnabled = true;
-
- // initially, no checking listeners
- checkingListeners = new HashSet<TriStateTreeCheckingListener>();
-
- // initially set to show the [+]/[-] icons for expanding collapsing top-level nodes
- this.setShowsRootHandles(true);
-
- // use the cell rendered which understands the three states of the
- // nodes of this tree
- this.setCellRenderer(new TriStateCheckBoxTreeCellRenderer());
-
-
- // create all necessary actions for the popup menu: selecting/deselecting and expanding/collapsing all nodes
- this.selectAllAction = new AbstractAction("Select all", ResourceManager.getImageIcon(ResourceManager.SELECT_ALL_ICON))
- {
- // Tooltip
- { this.putValue(SHORT_DESCRIPTION, "Select all nodes in the tree"); }
-
- public void actionPerformed(ActionEvent e) {
- selectAllNodes(true);
- }
- };
-
- // Use the Taverna untick icon
- this.deselectAllAction = new AbstractAction("Deselect all", ResourceManager.getImageIcon(ResourceManager.UNCHECKED_ICON))
- {
- // Tooltip
- { this.putValue(SHORT_DESCRIPTION, "Deselect all nodes in the tree"); }
-
- public void actionPerformed(ActionEvent e) {
- selectAllNodes(false);
- }
- };
-
-
-// this.expandAllAction = new AbstractAction("Expand all", ResourceManager.getImageIcon(ResourceManager.EXPAND_ALL_ICON))
- // Use the standard Taverna plus icon
- this.expandAllAction = new AbstractAction("Expand all", WorkbenchIcons.plusIcon)
- {
- // Tooltip
- { this.putValue(SHORT_DESCRIPTION, "Expand all nodes in the tree"); }
-
- public void actionPerformed(ActionEvent e) {
- expandAll();
- }
- };
-
-// this.collapseAllAction = new AbstractAction("Collapse all", ResourceManager.getImageIcon(ResourceManager.COLLAPSE_ALL_ICON))
- // Use the standard Taverna minus icon
- this.collapseAllAction = new AbstractAction("Collapse all", WorkbenchIcons.minusIcon)
- {
- // Tooltip
- { this.putValue(SHORT_DESCRIPTION, "Collapse all expanded nodes in the tree"); }
-
- public void actionPerformed(ActionEvent e) {
- collapseAll();
- }
- };
-
-
- // populate the popup menu with created menu items
- contextualMenuActions = Arrays.asList(new Action[] {expandAllAction, collapseAllAction, deselectAllAction});
-
- contextualMenu = new JPopupMenu();
- contextualMenu.add(expandAllAction);
- contextualMenu.add(collapseAllAction);
- contextualMenu.add(new JPopupMenu.Separator());
- //contextualMenu.add(selectAllAction);
- contextualMenu.add(deselectAllAction);
-
-
- this.addMouseListener(new MouseAdapter() {
- // use mousePressed, not mouseClicked to make sure that
- // quick successive clicks get processed correctly, otherwise
- // some clicks are disregarded
- public void mousePressed(MouseEvent e)
- {
- // only listen to checkbox checking requests if this is
- // a correct type of mouse event for this
- if (!e.isPopupTrigger() && e.getButton() == MouseEvent.BUTTON1)
- {
- int clickedRow = instanceOfSelf.getRowForLocation(e.getX(), e.getY());
-
- // only make changes to node selections if checking is enabled in the tree and
- // it was a node which was clicked, not [+]/[-] or blank space
- if (bCheckingEnabled && clickedRow != -1)
- {
- Object clickedObject = instanceOfSelf.getPathForRow(clickedRow).getLastPathComponent();
- if (clickedObject instanceof TriStateTreeNode) {
- TriStateTreeNode node = ((TriStateTreeNode)clickedObject);
-
- // toggle state of the clicked node + propagate the changes to
- // the checking state of all nodes
- node.toggleState(true);
-
- // repaint the whole tree
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- instanceOfSelf.repaint();
- }
- });
-
- // notify all listeners
- notifyCheckingListeners();
- }
- }
- }
- else {
- // not a checking action - instead, bring up a popup menu
- contextualMenu.show(instanceOfSelf, e.getX(), e.getY());
- }
- }
-
- public void mouseReleased(MouseEvent e)
- {
- if (e.isPopupTrigger()) {
- // another way a popup menu may be called on different systems
- contextualMenu.show(instanceOfSelf, e.getX(), e.getY());
- }
- }
-
-
- /**
- * This method enables tooltips on this instance of JTriStateTree
- * when mouse enters its bounds. Custom tooltips will be used, but
- * this notifies ToolTipManager that tooltips must be shown on this
- * tree.
- */
- public void mouseEntered(MouseEvent e) {
- instanceOfSelf.setToolTipText("Filter tree");
- }
-
- /**
- * Removes tooltips from this JTriStateTree when mouse leaves its bounds.
- */
- public void mouseExited(MouseEvent e) {
- instanceOfSelf.setToolTipText(null);
- }
-
- });
-
- }
-
-
- /**
- * This method is used to determine tooltip location.
- *
- * Helps to ensure that the tooltip appears directly over the
- * text in the row over which the mouse currently hovers.
- */
- public Point getToolTipLocation(MouseEvent e)
- {
- int iRowIndex = this.getRowForLocation(e.getX(), e.getY());
- if (iRowIndex != -1) {
- // mouse hovers over one of the rows - make top-left corner of
- // the tooltip to appear over the top-left corner of that row
- Rectangle bounds = this.getRowBounds(iRowIndex);
- return (new Point(bounds.x + JCHECKBOX_WIDTH, bounds.y));
- }
- else {
- // let ToolTipManager determine where to show the tooltip (if it will be shown)
- return null;
- }
- }
-
-
- /**
- * Supports dynamic tooltips for the contents of this JTriStateTree -
- * the tooltips will only be shown for those tree nodes that don't
- * fully fit within the visible bounds of the tree.
- *
- * For other nodes no tooltip will be shown.
- */
- public String getToolTipText(MouseEvent e)
- {
- String strTooltip = null;
-
- Object correspondingObject = getTreeNodeObject(e);
- if (correspondingObject != null) {
- // mouse is hovering over some row in the tree, not a blank space --
- // obtain a component that is identical to the one which is currently displayed at the identified row in the tree
- Component rendering = this.getCellRenderer().getTreeCellRendererComponent(this, correspondingObject, false, false,
- true, this.getRowForLocation(e.getX(), e.getY()), false);
-
- if (rendering.getPreferredSize().width + getToolTipLocation(e).x - JCHECKBOX_WIDTH > this.getVisibleRect().width) {
- // if the component is not fully visible, the tooltip will be displayed -
- // tooltip text matches the one for this row in the tree, will just be shown in full
- strTooltip = correspondingObject.toString();
- }
- }
-
- // return either tooltip text or 'null' if no tooltip is currently required
- return (strTooltip);
- }
-
-
- /**
- * Check whether a {@link MouseEvent} happened in such a location
- * in the {@link JTriStateTree} that corresponds to some node or a
- * blank space.
- *
- * @param e
- * @return Object contained in the tree node that corresponds to the
- * location of specified {@link MouseEvent} <code>e</code>;
- * or <code>null</code> if the event happened over a blank space.
- */
- public Object getTreeNodeObject(MouseEvent e)
- {
- int iRowIndex = this.getRowForLocation(e.getX(), e.getY());
- if (iRowIndex != -1) {
- // mouse is hovering over some row in the tree, not a blank space
- return (this.getPathForRow(iRowIndex).getLastPathComponent());
- }
-
- return (null);
- }
-
-
- /**
- * @return List of the highest-level nodes of the tree that have full (not partial) selection and,
- * therefore, act as roots of checked paths.
- */
- public List<TreePath> getRootsOfCheckedPaths()
- {
- return getRootsOfCheckedPaths(this.root);
- }
-
- /**
- * A recursive version of the getCheckedRootsOfCheckedPaths().
- * Performs all the work for a given node and returns result to
- * the caller.
- *
- * @param startNode Node to start with.
- * @return
- */
- private List<TreePath> getRootsOfCheckedPaths(TriStateTreeNode startNode)
- {
- ArrayList<TreePath> pathsToRootsOfCheckings = new ArrayList<TreePath>();
-
- Object currentNode = null;
- for (Enumeration e = startNode.children(); e.hasMoreElements(); )
- {
- currentNode = e.nextElement();
- if (currentNode instanceof TriStateTreeNode) {
- TriStateTreeNode curTriStateNode = (TriStateTreeNode)currentNode;
-
- if (curTriStateNode.getState().equals(TriStateCheckBox.State.CHECKED)) {
- pathsToRootsOfCheckings.add(new TreePath(curTriStateNode.getPath()));
- }
- else if (curTriStateNode.getState().equals(TriStateCheckBox.State.PARTIAL)) {
- pathsToRootsOfCheckings.addAll(getRootsOfCheckedPaths(curTriStateNode));
- }
- }
- }
-
- return (pathsToRootsOfCheckings);
- }
-
-
- /**
- * @return List of TreePath objects, where the last component in each
- * path is the root of an unchecked path in this tree. In other
- * words each of those last components is either an unchecked
- * leaf node or a node, none of whose children (and itself as
- * well) are checked.
- */
- public List<TreePath> getRootsOfUncheckedPaths()
- {
- return (getRootsOfUncheckedPaths(this.root));
- }
-
-
- /**
- * Recursive worker method for <code>getRootsOfUncheckedPaths()</code>.
- */
- private List<TreePath> getRootsOfUncheckedPaths(TreeNode startNode)
- {
- List<TreePath> rootNodesOfUncheckedPaths = new ArrayList<TreePath>();
-
- Object currentNode = null;
- for (Enumeration e = startNode.children(); e.hasMoreElements(); )
- {
- currentNode = e.nextElement();
- if (!(currentNode instanceof TriStateTreeNode) ||
- ((TriStateTreeNode)currentNode).getState().equals(TriStateCheckBox.State.UNCHECKED))
- {
- rootNodesOfUncheckedPaths.add(new TreePath(((DefaultMutableTreeNode)currentNode).getPath()));
- }
- else {
- rootNodesOfUncheckedPaths.addAll(getRootsOfUncheckedPaths((TreeNode)currentNode));
- }
- }
-
- return (rootNodesOfUncheckedPaths);
- }
-
-
- /**
- * @return List of TreePath objects, that point to all "leaf"
- * nodes in the tree that are checked - in other words
- * this method returns a collection of paths to all "deepest"
- * nodes in this tree that are checked and do not have any
- * (checked) children.
- */
- public List<TreePath> getLeavesOfCheckedPaths() {
- return (getLeavesOfCheckedPaths(this.root));
- }
-
-
- /**
- * Recursive worker method for {@link JTriStateTree#getLeavesOfCheckedPaths()}
- */
- private List<TreePath> getLeavesOfCheckedPaths(TriStateTreeNode startNode)
- {
- List<TreePath> leavesOfCheckedPaths = new ArrayList<TreePath>();
-
- // this node is only relevant if it is checked itself - if not,
- // it must be the first-level child of another node that is checked
- // and is only considered here on the recursive pass (but will be discarded)
- if (startNode.getState().equals(TriStateCheckBox.State.CHECKED) ||
- startNode.getState().equals(TriStateCheckBox.State.PARTIAL))
- {
- // "ask" all children to do the same...
- Object currentNode = null;
- for (Enumeration e = startNode.children(); e.hasMoreElements(); ) {
- currentNode = e.nextElement();
- if (currentNode instanceof TriStateTreeNode) {
- leavesOfCheckedPaths.addAll(getLeavesOfCheckedPaths((TriStateTreeNode)currentNode));
- }
- }
-
- // ...if we have a list of leaf nodes, then this node can't be a leaf;
- // -> but alternatively, if the list is empty, it means that this node is
- // itself a leaf node and must be added to the result
- if (leavesOfCheckedPaths.isEmpty()) {
- leavesOfCheckedPaths.add(new TreePath(startNode.getPath()));
- }
- }
-
- return (leavesOfCheckedPaths);
- }
-
-
- /**
- * @return List of all contextual menu actions that are available for this tree.
- */
- public List<Action> getContextualMenuActions() {
- return this.contextualMenuActions;
- }
-
-
- /**
- * Enables or disables all actions in the contextual menu
- * @param actionsAreEnabled
- */
- public void enableAllContextualMenuAction(boolean actionsAreEnabled) {
- for (Action a : getContextualMenuActions()) {
- a.setEnabled(actionsAreEnabled);
- }
- }
-
-
- /**
- * Selects or deselects all nodes.
- * @param selectAll True - to select all; false - to reset all selections.
- */
- public void selectAllNodes(boolean selectAll) {
- root.setState(selectAll ? TriStateCheckBox.State.CHECKED : TriStateCheckBox.State.UNCHECKED);
- root.updateStateOfRelatedNodes();
- this.repaint();
-
- // even though this isn't a click in the tree, the selection has changed -
- // notify all listeners
- notifyCheckingListeners();
- }
-
-
- /**
- * TODO - this method doesn't take into account a possibility that the
- * filter tree might have changed
- *
- * @param rootsOfCheckedPaths A list of TreePath objects which represent a checking state of
- * the nodes in this tree (as returned by <code>getRootsOfCheckedPaths()</code>).
- *
- * The last node of each path is the one that should have <code>TriStateCheckBox.State.CHECKED</code>
- * state (so that last node is a root of checked path that start at that node). Related partial
- * checkings for the UI can be computed from that by the tree checking model.
- *
- * Therefore, a single "real" checking per provided TreePath from <code>rootsOfCheckedPaths</code> is
- * made.
- */
- public void restoreFilterCheckingSettings(List<TreePath> rootsOfCheckedPaths)
- {
- // start with removing all selections
- this.selectAllNodes(false);
-
- for (TreePath p : rootsOfCheckedPaths) {
- restoreTreePathCheckingSettings(this.root, p);
- }
- }
-
- /**
- * A worker method for <code>restoreFilterCheckingSettings(List<TreePath> rootsOfCheckedPaths)</code>.
- * See that method for further details.
- *
- * @param startNode A node of this tree.
- * @param pathFromStartNode A TreePath object from the stored filter, where the first node must be
- * equals to <code>startNode</code> (based on the <code>userObject</code>,
- * but not the checking state), should the traversal of the tree result in
- * checking the last node of this TreePath eventually - which is the goal
- * of this method.
- * @return True if traversal of <code>pathFromStartNode</code> succeeded and a node in this tree was checked;
- * false if traversal couldn't find a matching node in this tree, and so no checking was made.
- */
- private boolean restoreTreePathCheckingSettings(TriStateTreeNode startNode, TreePath pathFromStartNode)
- {
- if (startNode == null || pathFromStartNode == null || pathFromStartNode.getPathCount() == 0) {
- // no match - no data to work with
- return (false);
- }
-
- // compare the "roots" - provided start node and the root of the provided path
- // (based on the 'user object', but not the selection state)
- if (startNode.equals(pathFromStartNode.getPathComponent(0)))
- {
- if (pathFromStartNode.getPathCount() == 1) {
- // provided startNode is equals to the only node in the provided tree path -
- // so it is the node to mark as checked; also - make sure that this selection
- // propagates through tree
- startNode.setState(TriStateCheckBox.State.CHECKED, true);
-
- // we've found the required node in this path - no further search needed,
- // so terminate this method
- return (true);
- }
- else {
- // provided startNode is equals to the first node of the provided tree path -
- // meaning that at this stage we need to traverse all children of the startNode
- // and look for the child that would match the next element in the provided tree path
- //
- // to do this, produce a new tree path from the provided one that doesn't contain
- // the first node - then proceed recursively
- Object[] currentPathComponents = pathFromStartNode.getPath();
- Object[] reducedPathComponents = new Object[currentPathComponents.length - 1];
- System.arraycopy(currentPathComponents, 1, reducedPathComponents, 0, currentPathComponents.length - 1);
-
- Enumeration children = startNode.children();
- while (children.hasMoreElements()) {
- TriStateTreeNode currentChild = (TriStateTreeNode)children.nextElement();
-
- // if recursive call succeeds, no need to iterate any further
- if (restoreTreePathCheckingSettings(currentChild, new TreePath(reducedPathComponents))) return (true);
- }
- }
- }
-
- // the startNode doesn't match the the first element in the provided tree path
- // or no match could be found during recursive search for the node to "check"
- return (false);
- }
-
-
- /**
- * Expands all paths in this tree.
- */
- public void expandAll()
- {
- // this simply expands all tree nodes
- // TODO - this actually "freezes" the UI if there are many nodes in the tree
- // some better solution to be found (e.g. expand the nodes in the model, then update UI, or similar)
- for (int i = 0; i < getRowCount(); i++) {
- instanceOfSelf.expandRow(i);
- }
- }
-
-
- /**
- * Collapses all paths in this tree.
- */
- public void collapseAll()
- {
- // this simply collapses all expanded nodes - this is very quick, execute just as it is
- for (int i = getRowCount() - 1; i >= 0; i--) {
- instanceOfSelf.collapseRow(i);
- }
- }
-
-
- /**
- * Removes all nodes in this tree that are unchecked.
- *
- * It doesn't iterate through *all* nodes - if some node is
- * indeed unchecked, it removes that node and any children that
- * it has (because unchecked node is the root of an unchecked path).
- */
- public void removeAllUncheckedNodes()
- {
- // get the tree model first - will be used to remove the nodes
- DefaultTreeModel theTreeModel = (DefaultTreeModel)this.treeModel;
-
- // remove unchecked nodes
- List<TreePath> allNodesToRemove = this.getRootsOfUncheckedPaths();
- for (TreePath p : allNodesToRemove) {
- theTreeModel.removeNodeFromParent((MutableTreeNode)p.getLastPathComponent());
- }
- }
-
-
- /**
- * Provides access to the contextual menu of this JTriStateTree.
- *
- * @return Reference to the contextual menu.
- */
- public JPopupMenu getContextualMenu() {
- return contextualMenu;
- }
-
-
- public void setCheckingEnabled(boolean bCheckingEnabled) {
- this.bCheckingEnabled = bCheckingEnabled;
- }
-
- /**
- * @return True if the current state of this JTriStateTree
- * allows making changes to checking of checkboxes
- * in its nodes.
- */
- public boolean isCheckingEnabled() {
- return bCheckingEnabled;
- }
-
-
- /**
- * @param listener New tree checking listener to register for updates
- * to tree node selections.
- */
- public void addCheckingListener(TriStateTreeCheckingListener listener) {
- if (listener != null) {
- this.checkingListeners.add(listener);
- }
- }
-
-
- /**
- * @param listener Tree checking listener to remove.
- */
- public void removeCheckingListener(TriStateTreeCheckingListener listener) {
- if (listener != null) {
- this.checkingListeners.remove(listener);
- }
- }
-
-
- /**
- * Sends a signal to all listeners to check the state of the tree,
- * as it has changed.
- */
- private void notifyCheckingListeners() {
- for (TriStateTreeCheckingListener listener : this.checkingListeners) {
- listener.triStateTreeCheckingChanged(instanceOfSelf);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Swing - Tristate CheckBox.7z
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Swing - Tristate CheckBox.7z b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Swing - Tristate CheckBox.7z
deleted file mode 100644
index 8c60d87..0000000
Binary files a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Swing - Tristate CheckBox.7z and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Test.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Test.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Test.java
deleted file mode 100644
index 6d58db3..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/Test.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JScrollPane;
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class Test extends JFrame
-{
- public Test() {
- this.setLayout(new BorderLayout());
-
- this.add(new TriStateCheckBox("LOL", TriStateCheckBox.State.PARTIAL), BorderLayout.NORTH);
-
- TriStateTreeNode root = new TriStateTreeNode("root");
- TriStateTreeNode c1 = new TriStateTreeNode("child 1");
- TriStateTreeNode c2 = new TriStateTreeNode("child 2");
- TriStateTreeNode c3 = new TriStateTreeNode("child 3");
-
- TriStateTreeNode c1_1 = new TriStateTreeNode("child 1_1");
- TriStateTreeNode c1_2 = new TriStateTreeNode("child 1_2");
- TriStateTreeNode c1_3 = new TriStateTreeNode("child 1_3");
-
- TriStateTreeNode c2_1 = new TriStateTreeNode("child 2_1");
- TriStateTreeNode c2_2 = new TriStateTreeNode("child 2_2");
- TriStateTreeNode c2_3 = new TriStateTreeNode("child 2_3");
-
- TriStateTreeNode c3_1 = new TriStateTreeNode("child 3_1");
- TriStateTreeNode c3_2 = new TriStateTreeNode("child 3_2");
- TriStateTreeNode c3_3 = new TriStateTreeNode("child 3_3");
-
- TriStateTreeNode c1_1_1 = new TriStateTreeNode("child 1_1_1");
- TriStateTreeNode c1_1_2 = new TriStateTreeNode("child 1_1_2");
- TriStateTreeNode c1_1_3 = new TriStateTreeNode("child 1_1_3");
-
- // adding second level children
- root.add(c1); root.add(c2); root.add(c3);
-
- // adding third-level children
- c1.add(c1_1); c1.add(c1_2); c1.add(c1_3);
- c2.add(c2_1); c2.add(c2_2); c2.add(c2_3);
- c3.add(c3_1); c3.add(c3_2); c3.add(c3_3);
-
- // adding fourth-level children
- c1_1.add(c1_1_1); c1_1.add(c1_1_2); c1_1.add(c1_1_3);
-
-
- // NB! important to create the tree when 'root' is already populated with children
- JTriStateTree tree = new JTriStateTree(root);
- tree.setRootVisible(false);
- tree.setShowsRootHandles(true);
- this.add(new JScrollPane(tree), BorderLayout.CENTER);
-
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.pack();
- }
-
-
- public static void main(String[] args) {
- JFrame a = new Test();
- a.setVisible(true);
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBox.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBox.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBox.java
deleted file mode 100644
index 361dfc3..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBox.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-/*
- * Taken from: http://72.5.124.102/thread.jspa?threadID=721308&messageID=9955637
- * Data webpage accessed: 07/February/2010
- *
- * Modified by Sergejs Aleksejevs
- */
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.GradientPaint;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-
-import javax.swing.Icon;
-import javax.swing.JCheckBox;
-import javax.swing.JToggleButton;
-import javax.swing.UIManager;
-
-public class TriStateCheckBox extends JCheckBox
-{
- private static final long serialVersionUID = 1L;
-
- public static enum State {
- CHECKED, UNCHECKED, PARTIAL
- };
-
-
- // these colors will be used for painting the 'partial' state of the checkbox -
- // a gradient painting will be made from top-left to bottom-right
- private Color partialStateTopLeftColor = Color.GREEN.darker().darker().darker();
- private Color partialStateBottomRightColor = Color.GREEN.brighter().brighter().brighter();
-
-
- /**
- * Creates an initially unselected check box button with no text, no icon.
- */
- public TriStateCheckBox() {
- this(null, State.UNCHECKED);
- }
-
- /**
- * Creates a check box with text and icon, and specifies whether or not it is initially
- * selected.
- *
- * @param text
- * The text of the check box.
- * @param initial
- * The initial state
- */
- public TriStateCheckBox(String text, State initial) {
- super.setText(text);
- setModel(new TriStateModel(initial));
- setIcon(new TriStateIcon(this));
- // some UI settings
- setRolloverEnabled(true);
- }
-
- /**
- * Set the new state to either CHECKED, PARTIAL or UNCHECKED.
- */
- public void setState(State state) {
- ((TriStateModel) model).setState(state);
- }
-
- /**
- * Return the current state, which is determined by the selection status of the model.
- */
- public State getState() {
- return ((TriStateModel) model).getState();
- }
-
- public void setSelected(boolean selected) {
- ((TriStateModel) model).setSelected(selected);
- }
-
- /** The model for the button */
- private static class TriStateModel extends JToggleButton.ToggleButtonModel {
-
- private static final long serialVersionUID = 1L;
- protected State state;
-
- public TriStateModel(State state) {
- this.state = state;
- }
-
- public boolean isSelected() {
- return state == State.CHECKED;
- }
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- fireStateChanged();
- }
-
- public void setPressed(boolean pressed) {
- if (pressed) {
- switch (state) {
- case UNCHECKED:
- state = State.CHECKED;
- break;
- case PARTIAL:
- state = State.UNCHECKED;
- break;
- case CHECKED:
- state = State.PARTIAL;
- break;
- }
- }
-
- }
-
- public void setSelected(boolean selected) {
- if (selected) {
- this.state = State.CHECKED;
- } else {
- this.state = State.UNCHECKED;
- }
- }
- }
-
- private class TriStateIcon implements Icon
- {
- private Icon checkBoxIcon;
- private TriStateCheckBox triStateCheckBox;
- public TriStateIcon(TriStateCheckBox triStateCheckBox) {
- this.triStateCheckBox = triStateCheckBox;
- this.checkBoxIcon = UIManager.getIcon("CheckBox.icon");
-
- return;
- }
-
- public final int getIconHeight() {
- return this.checkBoxIcon.getIconHeight();
-
- }
-
- public final int getIconWidth() {
- return this.checkBoxIcon.getIconWidth();
-
- }
-
-
- public void paintIcon(Component c, Graphics g, int x, int y)
- {
- checkBoxIcon.paintIcon(triStateCheckBox, g, x, y);
- if (triStateCheckBox.getState().equals(TriStateCheckBox.State.PARTIAL))
- {
- // this is changed to create the gradient paint dynamically every time;
- // this makes sure that the gradient is relative to the actual position of the checkbox,
- // rather than in the absolute coordinates of the parent component
- GradientPaint gradient = new GradientPaint(x, y, partialStateTopLeftColor, x + 8, y + 8, partialStateBottomRightColor, false);
-
- Graphics2D g2d = (Graphics2D) g;
- g2d.setPaint(gradient);
- final int deltaX = 2;
- final int deltaY = 2;
- final int xNew = x + deltaX;
- final int yNew = y + deltaY;
- final int width = getIconWidth() - 2*deltaX;
- final int height = getIconHeight() - 2*deltaY;
- g2d.fillRect(xNew, yNew, width, height);
- }
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBoxTreeCellRenderer.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBoxTreeCellRenderer.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBoxTreeCellRenderer.java
deleted file mode 100644
index dd78bf7..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateCheckBoxTreeCellRenderer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-import java.awt.Color;
-import java.awt.Component;
-
-import javax.swing.JLabel;
-import javax.swing.JTree;
-import javax.swing.border.Border;
-import javax.swing.tree.DefaultTreeCellRenderer;
-
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-
-
-/**
- * Provides a mechanism for rendering tri-state tree nodes.
- *
- * @author Sergejs Aleksejevs
- */
-public class TriStateCheckBoxTreeCellRenderer extends DefaultTreeCellRenderer
-{
- public Component getTreeCellRendererComponent(JTree tree, Object value,
- boolean selected, boolean expanded, boolean leaf, int row,
- boolean hasFocus)
- {
- Border treeNodePanelBorder = null; // will be obtained from default rendering and applied to the new one
- Color backgroundColor = null; // likewise: will be applied to all constituents of the new rendering
-
- // obtain the default rendering, we'll then customize it
- Component defaultRendering = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
-
- // it is most likely that the default rendering will be a JLabel, check just to be safe
- if (defaultRendering instanceof JLabel)
- {
- JLabel defaultRenderedLabel = ((JLabel)defaultRendering);
-
- // if this is not the case, it kind of undermines the whole purpose
- // of using this tree cell renderer, but check just to be sure
- if (value instanceof TriStateTreeNode) {
- // a state value from within the TriStateTreeNode will be used to
- // set the correct state in its rendering
- switch (((TriStateTreeNode)value).getState()) {
- case CHECKED:
- if (((TriStateTreeNode)value).getPath().length > 2) {
- // only allow CHECKED state icon for nodes that are deeper than second
- // level in the tree - that is for any nodes that do not represent categories
- // in the tree (root is not shown, so nodes that represent categories are
- // effectively multiple category "roots" that have actual contents inside them)
- defaultRenderedLabel.setIcon(ResourceManager.getImageIcon(ResourceManager.TRISTATE_CHECKBOX_CHECKED_ICON));
- break;
- }
- // else -- 'fall through' to PARTIAL icon: this was a CHECKED state for the category node
- case PARTIAL: defaultRenderedLabel.setIcon(ResourceManager.getImageIcon(ResourceManager.TRISTATE_CHECKBOX_PARTIAL_ICON)); break;
- case UNCHECKED: defaultRenderedLabel.setIcon(ResourceManager.getImageIcon(ResourceManager.TRISTATE_CHECKBOX_UNCHECKED_ICON)); break;
- default: defaultRenderedLabel.setIcon(null); break;
- }
- }
- }
-
- return (defaultRendering);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeCheckingListener.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeCheckingListener.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeCheckingListener.java
deleted file mode 100644
index e612e54..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeCheckingListener.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-/**
- * A simple interface to enable tracking tree checking
- * changes.
- *
- * @author Sergejs Aleksejevs
- */
-public interface TriStateTreeCheckingListener
-{
- public void triStateTreeCheckingChanged(JTriStateTree source);
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeNode.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeNode.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeNode.java
deleted file mode 100644
index 248cdf8..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/biocatalogue/ui/tristatetree/TriStateTreeNode.java
+++ /dev/null
@@ -1,246 +0,0 @@
-package net.sf.taverna.biocatalogue.ui.tristatetree;
-
-import java.util.Enumeration;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.TreeNode;
-
-/**
- * This class models tri-state nodes in the tree. Effectively
- * it associates a tri-state checkbox with each tree node.
- *
- * Useful for partial selections of hierarchical data -
- * partial selection of a node indicates that some of the
- * children of that node are selected.
- *
- * @author Sergejs Aleksejevs
- */
-@SuppressWarnings("serial")
-public class TriStateTreeNode extends DefaultMutableTreeNode
-{
- private TriStateCheckBox.State state;
-
- /**
- * Creates a regular tree node; associated tri-state checkbox state is set to UNCHECKED.
- *
- * @param userObject The object this tree node will represent.
- */
- public TriStateTreeNode(Object userObject) {
- this(userObject, TriStateCheckBox.State.UNCHECKED);
- }
-
- /**
- * Creates a regular tree node; associated tri-state checkbox state is set to the provided <code>initialState</code> value.
- *
- * @param userObject The object this tree node will represent.
- * @param initialState One of the enum values of <code>TriStateCheckBox.State</code>.
- */
- public TriStateTreeNode(Object userObject, TriStateCheckBox.State initialState) {
- super(userObject);
- this.state = initialState;
- }
-
-
- /**
- * Compares based on the user object, not the state of this node.
- */
- public boolean equals(Object other) {
- if (other instanceof TriStateTreeNode) {
- return (this.userObject.equals(((TriStateTreeNode)other).userObject));
- }
- else {
- return (false);
- }
- }
-
-
- /**
- * Sets the state of the current node and (optionally) propagates
- * those changes through the tree.
- *
- * @param state The new state to set - value from <code>TriStateCheckBox.State</code> enum.
- * @param propagateChangesToRelatedNodes True - to use the tree checking model to
- * propagate changes of the state of the current tree node to the
- * other related tree nodes (e.g. all descendants and ancestors) -
- * up and down the tree hierarchy. False - to only update the current
- * node and make no changes to the rest of the tree.
- */
- public void setState(TriStateCheckBox.State state, boolean propagateChangesToRelatedNodes)
- {
- this.state = state;
-
- // check if the tree checking model should be activated
- if (propagateChangesToRelatedNodes) {
- updateStateOfRelatedNodes();
- }
- }
-
-
- /**
- * Sets the state of the current node.
- *
- * @param state The new state to set - value from <code>TriStateCheckBox.State</code> enum.
- */
- public void setState(TriStateCheckBox.State state) {
- setState(state, false);
- }
-
-
- public TriStateCheckBox.State getState() {
- return state;
- }
-
-
- /**
- * Toggles the state of the associated tri-state checkbox.
- * State transitions are as follows:</br>
- * <code>
- * TriStateCheckBox.State.CHECKED -> TriStateCheckBox.State.UNCHECKED
- * TriStateCheckBox.State.PARTIAL -> TriStateCheckBox.State.UNCHECKED
- * TriStateCheckBox.State.UNCHECKED -> TriStateCheckBox.State.CHECKED
- * </code>
- *
- * @param propagateChangesToRelatedNodes True - to use the tree checking model to
- * propagate changes of the state of the current tree node to the
- * other related tree nodes (e.g. all descendants and ancestors) -
- * up and down the tree hierarchy. False - to only update the current
- * node and make no changes to the rest of the tree.
- * @return The value of the new state.
- */
- public TriStateCheckBox.State toggleState(boolean propagateChangesToRelatedNodes)
- {
- if (state.equals(TriStateCheckBox.State.CHECKED) || state.equals(TriStateCheckBox.State.PARTIAL)) {
- state = TriStateCheckBox.State.UNCHECKED;
- }
- else if (state.equals(TriStateCheckBox.State.UNCHECKED)) {
- state = TriStateCheckBox.State.CHECKED;
- }
-
- // check if the tree checking model should be activated
- if (propagateChangesToRelatedNodes) {
- updateStateOfRelatedNodes();
- }
-
- return (state);
- }
-
-
- /*
- * === The tree CHECKING MODEL ===
- *
- * Effectively, this defines the way the tree reacts to it's nodes
- * being checked / unchecked. Only one model is implemented at the
- * moment, therefore it's not extracted into a separate class, but
- * remains to be a part of the TriStateTreeNode.
- *
- * Could possibly be better placed within the JTriStateTree, rather
- * than TriStateTreeNode.
- */
-
- /**
- * The entry point - must be invoked to traverse the tree and make
- * changes to checking states of related tree nodes.
- */
- public void updateStateOfRelatedNodes()
- {
- updateStateOfAncestors(this.getParent());
- updateStateOfDescendants(this);
- }
-
-
- /**
- * Recursively visits all ancestors of the <code>parentNode</code>
- * and decides on their checking states based on the states of their
- * children nodes.
- *
- * @param parentNode Initially - parent node of the current node (i.e. the one,
- * for which a state update has been made); then updated for
- * recursive calls.
- */
- private void updateStateOfAncestors(TreeNode parentNode)
- {
- // reached root of the tree, do nothing - return
- if (parentNode == null) {
- return;
- }
-
- if (parentNode instanceof TriStateTreeNode) {
- TriStateTreeNode parentTriStateNode = (TriStateTreeNode)parentNode;
-
- // explicitly fetch children into a new enumeration - this is
- // to make sure that we work with the same enumeration, rather
- // than obtaining a fresh one with every reference to 'parentTriStateNode.children()'
- Enumeration childNodes = parentTriStateNode.children();
-
- // go through all the children and count the number of selected ones
- int iChildrenCount = 0;
- int iPartiallySelectedChildren = 0;
- int iSelectedChildren = 0;
-
- while(childNodes.hasMoreElements()) {
- Object node = childNodes.nextElement();
- if (node instanceof TriStateTreeNode) {
- TriStateTreeNode currentNode = (TriStateTreeNode)node;
- iChildrenCount++;
- if (currentNode.getState().equals(TriStateCheckBox.State.CHECKED)) {
- iSelectedChildren++;
- }
- else if (currentNode.getState().equals(TriStateCheckBox.State.PARTIAL)) {
- iPartiallySelectedChildren++;
- }
- }
- }
-
-
- // decide on the state of the 'parentNode' based on the checking state of its children
- if (iSelectedChildren == 0 && iPartiallySelectedChildren == 0) {
- // no children are selected
- parentTriStateNode.setState(TriStateCheckBox.State.UNCHECKED);
- }
- else if ((iSelectedChildren + iPartiallySelectedChildren) > 0 && iSelectedChildren < iChildrenCount) {
- // some children are selected (either partially or fully)
- parentTriStateNode.setState(TriStateCheckBox.State.PARTIAL);
- }
- else if (iSelectedChildren > 0 && iSelectedChildren == iChildrenCount) {
- // all children are selected
- parentTriStateNode.setState(TriStateCheckBox.State.CHECKED);
- }
-
-
- // repeat the same recursively up the hierarchy
- updateStateOfAncestors(parentTriStateNode.getParent());
- }
- }
-
- /**
- * Recursively traverses all descendants of the <code>parentNode</code>
- * to set their checking state to the value of the state of the <code>parentNode</code>.
- *
- * @param parentNode Initially - the tree node for which the state
- * change was made; then updated for recursive calls.
- */
- private void updateStateOfDescendants(TriStateTreeNode parentNode)
- {
- // explicitly fetch children into a new enumeration - this is
- // to make sure that we work with the same enumeration, rather
- // than obtaining a fresh one with every reference to 'parentNode.children()'
- Enumeration childNodes = parentNode.children();
-
- // for all child nodes do 2 things:
- // - set their state as that of the parent;
- // - repeat the same recursively with their children
- while(childNodes.hasMoreElements()) {
- Object node = childNodes.nextElement();
- if (node instanceof TriStateTreeNode) {
- TriStateTreeNode currentNode = (TriStateTreeNode) node;
- currentNode.setState(parentNode.getState());
- currentNode.updateStateOfDescendants(currentNode);
- }
- }
- }
-
- /*
- * === End of CHECKING MODEL implementation.
- */
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/BioCataloguePerspective.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/BioCataloguePerspective.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/BioCataloguePerspective.java
deleted file mode 100644
index ac170dc..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/BioCataloguePerspective.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue;
-
-import java.io.InputStream;
-import java.net.URL;
-
-import javax.swing.ImageIcon;
-
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.t2.workbench.ui.zaria.PerspectiveSPI;
-
-import org.jdom.Element;
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class BioCataloguePerspective implements PerspectiveSPI
-{
- private MainComponent perspectiveMainComponent;
- private boolean visible = true;
-
- public ImageIcon getButtonIcon()
- {
- return ResourceManager.getImageIcon(ResourceManager.FAVICON);
- }
-
- public InputStream getLayoutInputStream() {
- return getClass().getResourceAsStream("biocatalogue-perspective.xml");
- }
-
- public String getText() {
- return "Service Catalogue";
- }
-
- public boolean isVisible() {
- return visible;
- }
-
- public int positionHint()
- {
- // this determines position of perspective in the
- // bar with perspective buttons (currently makes it the last in
- // the list)
- return 40;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
-
- }
-
- public void update(Element layoutElement) {
- // TODO Auto-generated method stub
-
- // Not sure what to do here
- }
-
- public void setMainComponent(MainComponent component)
- {
- this.perspectiveMainComponent = component;
- }
-
- /**
- * Returns the instance of the main component of this perspective.
- */
- public MainComponent getMainComponent()
- {
- return this.perspectiveMainComponent;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponent.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponent.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponent.java
deleted file mode 100644
index eeb1cba..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponent.java
+++ /dev/null
@@ -1,285 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.GridLayout;
-
-import javax.swing.ImageIcon;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingUtilities;
-import javax.swing.ToolTipManager;
-import javax.swing.border.LineBorder;
-
-import net.sf.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.biocatalogue.model.Util;
-import net.sf.taverna.biocatalogue.ui.BioCatalogueExplorationTab;
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI;
-
-import org.apache.log4j.Logger;
-
-/*
- * @author Sergejs Aleksejevs
- */
-@SuppressWarnings("serial")
-public final class MainComponent extends JPanel implements UIComponentSPI //, ChangeListener
-{
-// private static final String windowBaseTitle = "BioCatalogue API Demo";
-// private HashMap<String, String> windowTitleMap;
-
- private MainComponent pluginPerspectiveMainComponent;
- private final Logger logger = Logger.getLogger(MainComponent.class);
-
- //private JTabbedPane tpMainTabs;
- private BioCatalogueExplorationTab jpBioCatalogueExplorationTab;
-// private BioCataloguePluginAbout jpAboutTab;
-
- public static JFrame dummyOwnerJFrame;
- static {
- // this is only to have a nice icon on all Dialog boxes - can be removed at any time
- dummyOwnerJFrame = new JFrame();
- dummyOwnerJFrame.setIconImage(ResourceManager.getImageIcon(ResourceManager.FAVICON).getImage());
- }
-
-
- /**
- * This constructor is protected, and so is only available to the classes in its package -
- * i.e. Taverna integration classes. Other parts of the plugin must use <code>MainComponentFactory.getSharedInstance()</code>
- * to get the shared instance of this class.
- */
- protected MainComponent()
- {
- super();
- initialiseEnvironment();
- initialisePerspectiveUI();
- }
-
-
- // *** Methods implementing UIComponentSPI interface ***
-
- public ImageIcon getIcon() {
- return WorkbenchIcons.databaseIcon;
- }
-
- @Override
- public String getName() {
- return "Service Catalogue Perspective Main Component";
- }
-
- public void onDisplay() {
- // TODO Auto-generated method stub
- }
-
- public void onDispose() {
- // TODO Auto-generated method stub
- }
-
- // *** End of methods implementing UIComponentSPI interface ***
-
-
- private void initialiseEnvironment()
- {
- // before anything else - store a reference to self for use during
- // initialisation of other components
- pluginPerspectiveMainComponent = this;
-
-
- // pre-load classes for FlyingSaucer XHTML renderer - this will make sure
- // that the first time it is used, there will be no delay while classes
- // are loaded by Java
- new Thread("class pre-loading") {
- public void run() {
- try {
- Class.forName("org.xhtmlrenderer.simple.FSScrollPane");
- Class.forName("org.xhtmlrenderer.simple.XHTMLPanel");
- }
- catch (ClassNotFoundException e) {
- logger.error("Problem while pre-loading classes for FlyingSaucer XHTML renderer", e);
- }
- }
- }.start();
-
-
- // determine what folder is to be used for config files
- if (!Util.isRunningInTaverna()) {
- // running outside Taverna, place config file and log into the user's home directory
- BioCataloguePluginConstants.CONFIG_FILE_FOLDER =
- new java.io.File(System.getProperty("user.home"), BioCataloguePluginConstants.CONFIG_FILE_FOLDER_WHEN_RUNNING_STANDALONE);
- BioCataloguePluginConstants.LOG_FILE_FOLDER =
- new java.io.File(System.getProperty("user.home"), BioCataloguePluginConstants.CONFIG_FILE_FOLDER_WHEN_RUNNING_STANDALONE);
- }
-
-
- // this makes sure that tooltips will stay displayed for longer than default
- ToolTipManager.sharedInstance().setDismissDelay(BioCataloguePluginConstants.DEFAULT_TOOLTIP_DURATION);
-
- // these components must be accessed by all other components, hence need
- // to be initialised before any other initialisation is done
-
-// windowTitleMap = new HashMap<String,String>();
- }
-
- private void initialisePerspectiveUI()
- {
- // set the loader icon to show that the perspective is loading
- this.setLayout(new GridLayout(1,1));
- this.add(new JLabel(ResourceManager.getImageIcon(ResourceManager.BAR_LOADER_ORANGE)));
-
- new Thread("Initialise Service Catalogue Perspective UI")
- {
- public void run() {
- // create all tabs prior to putting them inside the tabbed pane
- jpBioCatalogueExplorationTab = new BioCatalogueExplorationTab();
-// jpServiceFilteringTab = new ServiceFilteringTab(pluginPerspectiveMainComponent, client, logger);
-// jpSearchTab = new SearchTab(pluginPerspectiveMainComponent, client, logger);
-// jpAboutTab = new BioCataloguePluginAbout(pluginPerspectiveMainComponent, client, logger);
-
- // create main tabs
-// tpMainTabs = new JTabbedPane();
-// tpMainTabs.add("Explore BioCatalogue", jpBioCatalogueExplorationTab);
-// tpMainTabs.add("Search", jpSearchTab);
-// tpMainTabs.add("Filter Services", jpServiceFilteringTab);
-// tpMainTabs.add("About", jpAboutTab);
-
- SwingUtilities.invokeLater(new Runnable() {
- public void run()
- {
- // add main tabs and the status bar into the perspective
- pluginPerspectiveMainComponent.removeAll();
- pluginPerspectiveMainComponent.setLayout(new BorderLayout());
- pluginPerspectiveMainComponent.setBorder(new LineBorder(Color.BLACK));
- pluginPerspectiveMainComponent.add(jpBioCatalogueExplorationTab, BorderLayout.CENTER);
-
- // everything is prepared -- need to focus default component on the first tab
- // (artificially generate change event on the tabbed pane to perform focus request)
-// tpMainTabs.setSelectedIndex(1);
-// tpMainTabs.addChangeListener(pluginPerspectiveMainComponent);
-// tpMainTabs.setSelectedIndex(0);
- }
- });
- }
- }.start();
- }
-
- /**
- * Determines whether the specified tab is currently active in the main tabbed pane.
- * @param strTabClassName Class name of the tab which is tested for being active.
- * @return True if specified tab is currently active.
- */
-/*
- private boolean isTabActive(String strTabClassName)
- {
- if (tpMainTabs == null) return (false);
-
- // if an anonymous thread within the main tab component class will call
- // this method, we want to store the main tab's class, rather than
- // the full class name of the anonymous worker thread
- String strCurSelectedTabClassName = tpMainTabs.getSelectedComponent().getClass().getName();
-
- // get the real class name to match
- String strBaseClassName = Util.getBaseClassName(strTabClassName);
-
- // compare the two class names
- return (strBaseClassName.equals(strCurSelectedTabClassName));
- }
- */
-
-
- /**
- * This method "selects" the tab represented by the component provided as a parameter.
- *
- * @param c Component that represents one of the tabs in the main tabbed pane.
- * If <code>c</code> is not found within the components of the tabbed pane, nothing will happen.
- */
-/*
- public void setTabActive(Component c)
- {
- try {
- tpMainTabs.setSelectedComponent(c);
- }
- catch (IllegalArgumentException e) {
- // do nothing, can't activate component which is not in the tabbed pane
- }
- }
- */
-
-
- /**
- * Sets title of the main perspective window for a specified tab,
- * thus supporting different window titles for different tabs;
- * new title will only be displayed immediately if the specified tab.
- *
- * @param strTabClassName Class name of the tab, for which window title should be updated.
- * @param strTitle New title to set.
- */
-/*
- public void setWindowTitle(String strTabClassName, String strTitle)
- {
- // if an anonymous thread within the main tab component class will call
- // this method, we want to store the main tab's class, rather than
- // the full class name of the anonymous worker thread
- String strBaseClassName = Util.getBaseClassName(strTabClassName);
-
- // store the new title for for the specified tab
- windowTitleMap.put(strBaseClassName, strTitle);
-
- // if the specified tab is active, update window title immediately
- if (isTabActive(strBaseClassName)) displayWindowTitle(strBaseClassName);
- }
- */
-
-
- /**
- * Displays window title that corresponds to specified tab.
- *
- * @param strTabClassName Class name of the tab for which the window title is to be set.
- */
-/*
- public void displayWindowTitle(String strTabClassName)
- {
- // if an anonymous thread within the main tab component class will call
- // this method, we want to store the main tab's class, rather than
- // the full class name of the anonymous worker thread
- String strBaseClassName = Util.getBaseClassName(strTabClassName);
-
- if (windowTitleMap.containsKey(strBaseClassName)) {
- // title for specified tab found - show it
- // TODO - disabled until this info will be shown in the status bar
- //this.setTitle(windowBaseTitle + " :: " + windowTitleMap.get(strBaseClassName));
- }
- else {
- // tab not found - display standard title
- // TODO - disabled until this info will be shown in the status bar
- //this.setTitle(windowBaseTitle);
- }
- }
- */
-
- // *** Getters for various components ***
-
- /**
- * @return Reference to the component that represents the BioCatalogue Exploration
- * tab in the BioCatalogue Perspective.
- */
- public BioCatalogueExplorationTab getBioCatalogueExplorationTab() {
- return (this.jpBioCatalogueExplorationTab);
- }
-
- // *** Callbacks for ChangeListener interface ***
-
-/* public void stateChanged(ChangeEvent e)
- {
- if (e.getSource().equals(tpMainTabs)) {
- // will get called when selected tab changes - need to focus default component in the active tab
- // and also set a correct window title
- if (tpMainTabs.getSelectedComponent() instanceof HasDefaultFocusCapability) {
- ((HasDefaultFocusCapability)tpMainTabs.getSelectedComponent()).focusDefaultComponent();
- this.displayWindowTitle(tpMainTabs.getSelectedComponent().getClass().getName());
- }
- }
- }*/
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentFactory.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentFactory.java
deleted file mode 100644
index c213600..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue;
-
-import javax.swing.ImageIcon;
-
-import net.sf.taverna.t2.workbench.icons.WorkbenchIcons;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI;
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class MainComponentFactory implements UIComponentFactorySPI
-{
- // this is to ensure that the whole perspective is not re-created
- // each time it is being activated in Taverna, rather it will only
- // happen once during the execution
- private static MainComponent mainPerspectiveComponent = null;
-
- public static MainComponent getSharedInstance()
- {
- // double-check on existence of the 'mainPerspectiveComponent' ensures
- // that it is really created only once
- if (mainPerspectiveComponent == null) {
- synchronized(MainComponentFactory.class) {
- if (mainPerspectiveComponent == null) {
- mainPerspectiveComponent = new MainComponent();
- }
- }
- }
- return (mainPerspectiveComponent);
- }
-
- public UIComponentSPI getComponent() {
- return (getSharedInstance());
- }
-
-
- public ImageIcon getIcon() {
- return WorkbenchIcons.databaseIcon;
- }
-
- public String getName() {
- return "Service Catalogue Main Component Factory";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentShutdownHook.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentShutdownHook.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentShutdownHook.java
deleted file mode 100644
index 6c2e844..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/MainComponentShutdownHook.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue;
-
-import com.thoughtworks.xstream.XStream;
-
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.config.BioCataloguePluginConfiguration;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.service_panel.BioCatalogueServiceProvider;
-import net.sf.taverna.t2.workbench.ShutdownSPI;
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class MainComponentShutdownHook implements ShutdownSPI
-{
- public int positionHint()
- {
- // all custom plugins are suggested to return a value of > 100;
- // this affects when in the termination process will this plugin
- // be shutdown;
- return 100;
- }
-
- public boolean shutdown()
- {
- // Do not save service providers in BioCatalogue's conf file - they should be saved by Taverna together with
- // other service providers
-
-// // store services that were added to the Service Panel - both REST and SOAP
-// XStream xstream = new XStream();
-//
-// BioCataloguePluginConfiguration configuration = BioCataloguePluginConfiguration.getInstance();
-//
-// configuration.setProperty(
-// BioCataloguePluginConfiguration.SOAP_OPERATIONS_IN_SERVICE_PANEL,
-// xstream.toXML(BioCatalogueServiceProvider.getRegisteredSOAPOperations()));
-// configuration.setProperty(
-// BioCataloguePluginConfiguration.REST_METHODS_IN_SERVICE_PANEL,
-// xstream.toXML(BioCatalogueServiceProvider.getRegisteredRESTMethods()));
-//
-// // save all the plugin's configuration
-// configuration.store();
-//
-//
-// // close API operation log
-// MainComponentFactory.getSharedInstance().getBioCatalogueClient().getAPILogWriter().close();
-//
- return true;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/TestJFrameForLocalLaunch.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/TestJFrameForLocalLaunch.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/TestJFrameForLocalLaunch.java
deleted file mode 100644
index 28a52c7..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/TestJFrameForLocalLaunch.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-
-import javax.swing.JFrame;
-
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class TestJFrameForLocalLaunch extends JFrame implements ComponentListener
-{
- private static final int DEFAULT_POSITION_X = 225;
- private static final int DEFAULT_POSITION_Y = 150;
-
- private static final int DEFAULT_WIDTH = 800;
- private static final int DEFAULT_HEIGHT = 500;
-
-
- private TestJFrameForLocalLaunch()
- {
- // set window title and icon
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setTitle("Service Catalogue API Demo"/* TODO - windowBaseTitle */);
- this.setIconImage(ResourceManager.getImageIcon(ResourceManager.FAVICON).getImage());
- this.addComponentListener(this);
-
- // get content pane
- Container contentPane = this.getContentPane();
- contentPane.setLayout(new BorderLayout());
-
- // put main tabs into the content pane
- contentPane.add(MainComponentFactory.getSharedInstance(), BorderLayout.CENTER);
-
- this.pack();
- }
-
-
- // *** Callbacks for ComponentListener interface ***
-
- public void componentResized(ComponentEvent e) { /* do nothing */ }
- public void componentMoved(ComponentEvent e) { /* do nothing */ }
- public void componentHidden(ComponentEvent e) { /* do nothing */ }
- public void componentShown(ComponentEvent e) {
- this.setLocation(DEFAULT_POSITION_X, DEFAULT_POSITION_Y);
- }
-
-
- /**
- * This is a simple test class for launching BioCatalogue perspective
- * from outside Taverna. At some point it will be not usable anymore,
- * when proper integration of BioCatalogue plugin is made.
- *
- * @author Sergejs Aleksejevs
- */
- public static void main(String[] args)
- {
- TestJFrameForLocalLaunch standaloneFrame = new TestJFrameForLocalLaunch();
- standaloneFrame.setMinimumSize(new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT));
- standaloneFrame.setVisible(true);
- }
-}