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 2016/09/21 23:30:47 UTC
[12/13] incubator-taverna-workbench git commit: removed
taverna-perspective-biocatalogue
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourceManager.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourceManager.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourceManager.java
deleted file mode 100644
index c273f87..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourceManager.java
+++ /dev/null
@@ -1,342 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Graphics2D;
-import java.awt.GraphicsConfiguration;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
-import java.awt.image.BufferedImage;
-import java.net.URL;
-import java.util.HashMap;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import org.apache.taverna.activities.rest.ui.servicedescription.RESTActivityIcon;
-import org.apache.taverna.activities.wsdl.servicedescriptions.WSDLActivityIcon;
-import org.apache.taverna.ui.perspectives.biocatalogue.BioCataloguePerspective;
-
-/**
- * This class will be a single point of lookup of all resource files.
- * (Icons, images, CSS files, etc).
- *
- * @author Sergejs Aleksejevs
- */
-public class ResourceManager
-{
- // subfolders, where some icons / other resources are kept
- public static final String FAMFAMFAM_PATH = "famfamfam_silk/"; // free collection of icons
- public static final String SERVICE_ICONS_PATH = "service_icons/"; // icons related to web services (e.g. service types)
- public static final String FOLDS_PATH = "folds/"; // icons for 'folding' menus (like 'Search for...')
- public static final String TRISTATE_TREE_ICONS_PATH = "tristate_checkbox/"; // icons for the tri-state filtering tree
-
- // all known resources to follow
- public static final int FAVICON = 1;
-
- public static final int INFORMATION_ICON_LARGE = 10;
-
- public static final int SPINNER_STILL = 20;
- public static final int SPINNER = 21;
- public static final int BAR_LOADER_GREY = 25;
- public static final int BAR_LOADER_GREY_STILL = 26;
- public static final int BAR_LOADER_ORANGE = 30;
- public static final int BAR_LOADER_ORANGE_STILL = 31;
-
- public static final int FOLD_ICON = 40;
- public static final int UNFOLD_ICON = 41;
- public static final int FOLD_ICON_16x16 = 42;
- public static final int UNFOLD_ICON_16x16 = 43;
-
- public static final int SERVICE_TYPE_SOAP_ICON = 50;
- public static final int SERVICE_TYPE_REST_ICON = 51;
- public static final int SERVICE_TYPE_MULTITYPE_ICON = 65;
- public static final int SERVICE_TYPE_UNKNOWN_ICON = 70;
-
- public static final int TRISTATE_CHECKBOX_CHECKED_ICON = 80;
- public static final int TRISTATE_CHECKBOX_PARTIAL_ICON = 82;
- public static final int TRISTATE_CHECKBOX_UNCHECKED_ICON = 85;
- public static final int UNCHECKED_ICON = 86;
-
- public static final int SERVICE_STATUS_PASSED_ICON = 100;
- public static final int SERVICE_STATUS_PASSED_ICON_LARGE = 101;
- public static final int SERVICE_STATUS_WARNING_ICON = 110;
- public static final int SERVICE_STATUS_WARNING_ICON_LARGE = 111;
- public static final int SERVICE_STATUS_FAILED_ICON = 120;
- public static final int SERVICE_STATUS_FAILED_ICON_LARGE = 121;
- public static final int SERVICE_STATUS_UNCHECKED_ICON = 130;
- public static final int SERVICE_STATUS_UNCHECKED_ICON_LARGE = 131;
- public static final int SERVICE_STATUS_UNKNOWN_ICON = 140;
-
- public static final int UNKNOWN_RESOURCE_TYPE_ICON = 200;
- public static final int USER_ICON = 205;
- public static final int REGISTRY_ICON = 210;
- public static final int SERVICE_PROVIDER_ICON = 215;
- public static final int SERVICE_ICON = 220;
- public static final int SOAP_OPERATION_ICON = 225;
- public static final int REST_METHOD_ICON = 227;
- public static final int SERVICE_CATEGORY_ICON = 230;
- public static final int WSDL_DOCUMENT_ICON = 235;
- public static final int TAG_ICON = 240;
-
- public static final int OPEN_IN_BIOCATALOGUE_ICON = 310;
- public static final int SEARCH_ICON = 315;
- public static final int HISTORY_ICON = 320;
- public static final int REFRESH_ICON = 330;
- public static final int FAVOURITE_ICON = 335;
- public static final int TICK_ICON = 340;
- public static final int CROSS_ICON = 341;
- public static final int WARNING_ICON = 342;
- public static final int ERROR_ICON = 343;
- public static final int SAVE_ICON = 345;
- public static final int DELETE_ITEM_ICON = 350;
- public static final int CLEAR_ICON = 355;
- public static final int LOCKED_ICON = 360;
- public static final int UNLOCKED_ICON = 365;
-
- public static final int BACK_ICON = 370;
- public static final int FORWARD_ICON = 375;
- public static final int FILTER_ICON = 380;
- public static final int PREVIEW_ICON = 385;
- public static final int SUGGESTION_TO_USER_ICON = 390;
- public static final int ADD_PROCESSOR_TO_WORKFLOW_ICON = 395;
- public static final int ADD_PROCESSOR_AS_FAVOURITE_ICON = 396;
- public static final int EXECUTE_HEALTH_CHECK_ICON = 397;
- public static final int ADD_ALL_SERVICES_AS_FAVOURITE_ICON = 398;
-
- public static final int SELECT_ALL_ICON = 400;
- public static final int DESELECT_ALL_ICON = 405;
- public static final int EXPAND_ALL_ICON = 410;
- public static final int COLLAPSE_ALL_ICON = 420;
-
- public static final int SORT_BY_NAME_ICON = 450;
- public static final int SORT_BY_COUNTS_ICON = 455;
-
- public static final int STYLES_CSS = 1000;
-
-
- /**
- * Simple method to retrieve relative path of a required resource.
- */
- public static String getResourceRelPath(int resourceId)
- {
- String resPath = "";
-
- switch (resourceId) {
- case FAVICON: resPath += "favicon.png";
- break;
- case INFORMATION_ICON_LARGE: resPath += "info-sphere-35.png";
- break;
- case SPINNER_STILL: resPath += "ajax-loader-still.gif";
- break;
- case SPINNER: resPath += "ajax-loader.gif";
- break;
- case BAR_LOADER_GREY: resPath += "ajax-loader-grey-bert2.gif";
- break;
- case BAR_LOADER_GREY_STILL: resPath += "ajax-loader-grey-bert2-still.png";
- break;
- case BAR_LOADER_ORANGE: resPath += "ajax-loader-orange-bert2.gif";
- break;
- case BAR_LOADER_ORANGE_STILL: resPath += "ajax-loader-orange-bert2-still.png";
- break;
- case FOLD_ICON: resPath += FOLDS_PATH + "fold.png";
- break;
- case UNFOLD_ICON: resPath += FOLDS_PATH + "unfold.png";
- break;
- case FOLD_ICON_16x16: resPath += FOLDS_PATH + "fold_16x16.png";
- break;
- case UNFOLD_ICON_16x16: resPath += FOLDS_PATH + "unfold_16x16.png";
- break;
- case SERVICE_TYPE_SOAP_ICON: resPath += SERVICE_ICONS_PATH + "service_type_soap.png";
- break;
- case SERVICE_TYPE_REST_ICON: resPath += SERVICE_ICONS_PATH + "service_type_rest.png";
- break;
- case SERVICE_TYPE_MULTITYPE_ICON: resPath += SERVICE_ICONS_PATH + "service_type_multitype.png";
- break;
- case SERVICE_TYPE_UNKNOWN_ICON: resPath += SERVICE_ICONS_PATH + "service_type_unknown.png";
- break;
- case SERVICE_STATUS_PASSED_ICON: resPath += FAMFAMFAM_PATH + "accept.png";
- break;
- case SERVICE_STATUS_PASSED_ICON_LARGE: resPath += "tick-sphere-35.png";
- break;
- case SERVICE_STATUS_WARNING_ICON: resPath += FAMFAMFAM_PATH + "error.png";
- break;
- case SERVICE_STATUS_WARNING_ICON_LARGE: resPath += "pling-sphere-35.png";
- break;
- case SERVICE_STATUS_FAILED_ICON: resPath += FAMFAMFAM_PATH + "exclamation.png";
- break;
- case SERVICE_STATUS_FAILED_ICON_LARGE: resPath += "cross-sphere-35.png";
- break;
- case SERVICE_STATUS_UNCHECKED_ICON: resPath += FAMFAMFAM_PATH + "help.png";
- break;
- case SERVICE_STATUS_UNCHECKED_ICON_LARGE: resPath += "query-sphere-35.png";
- break;
- case SERVICE_STATUS_UNKNOWN_ICON: resPath += FAMFAMFAM_PATH + "grey_circle.png";
- break;
- case TRISTATE_CHECKBOX_CHECKED_ICON: resPath += TRISTATE_TREE_ICONS_PATH + "tristate_checkbox_checked.png";
- break;
- case TRISTATE_CHECKBOX_PARTIAL_ICON: resPath += TRISTATE_TREE_ICONS_PATH + "tristate_checkbox_partial.png";
- break;
- case TRISTATE_CHECKBOX_UNCHECKED_ICON: resPath += TRISTATE_TREE_ICONS_PATH + "tristate_checkbox_unchecked.png";
- break;
- case UNCHECKED_ICON: resPath += "unchecked.png";
- break;
- case UNKNOWN_RESOURCE_TYPE_ICON: resPath += FAMFAMFAM_PATH + "grey_circle.png";
- break;
- case USER_ICON: resPath += FAMFAMFAM_PATH + "user.png";
- break;
- case REGISTRY_ICON: resPath += FAMFAMFAM_PATH + "remote_resource.png";
- break;
- case SERVICE_PROVIDER_ICON: resPath += FAMFAMFAM_PATH + "chart_organisation.png";
- break;
- case SERVICE_ICON: resPath += "favicon.png";
- break;
- case SOAP_OPERATION_ICON: resPath += FAMFAMFAM_PATH + "plugin.png";
- break;
- case REST_METHOD_ICON: resPath += FAMFAMFAM_PATH + "plugin.png";
- break;
- case SERVICE_CATEGORY_ICON: resPath += FAMFAMFAM_PATH + "text_list_numbers.png";
- break;
- case TAG_ICON: resPath += FAMFAMFAM_PATH + "tag_blue.png";
- break;
- case WSDL_DOCUMENT_ICON: resPath += FAMFAMFAM_PATH + "page_white_code.png";
- break;
- case OPEN_IN_BIOCATALOGUE_ICON: resPath += FAMFAMFAM_PATH + "magnifier.png";
- break;
- case SEARCH_ICON: resPath += FAMFAMFAM_PATH + "magnifier.png";
- break;
- case HISTORY_ICON: resPath += FAMFAMFAM_PATH + "folder_explore.png";
- break;
- case REFRESH_ICON: resPath += FAMFAMFAM_PATH + "arrow_refresh.png";
- break;
- case FAVOURITE_ICON: resPath += FAMFAMFAM_PATH + "star.png";
- break;
- case TICK_ICON: resPath += FAMFAMFAM_PATH + "tick.png";
- break;
- case CROSS_ICON: resPath += FAMFAMFAM_PATH + "cross.png";
- break;
- case WARNING_ICON: resPath += FAMFAMFAM_PATH + "error.png";
- break;
- case ERROR_ICON: resPath += FAMFAMFAM_PATH + "exclamation.png";
- break;
- case SAVE_ICON: resPath += FAMFAMFAM_PATH + "disk.png";
- break;
- case DELETE_ITEM_ICON: resPath += FAMFAMFAM_PATH + "cross.png";
- break;
- case CLEAR_ICON: resPath += "trash.png";
- break;
- case LOCKED_ICON: resPath += FAMFAMFAM_PATH + "lock.png";
- break;
- case UNLOCKED_ICON: resPath += FAMFAMFAM_PATH + "lock_open.png";
- break;
- case BACK_ICON: resPath += FAMFAMFAM_PATH + "arrow_left.png";
- break;
- case FORWARD_ICON: resPath += FAMFAMFAM_PATH + "arrow_right.png";
- break;
- case FILTER_ICON: resPath += FAMFAMFAM_PATH + "arrow_join (flipped vertically).png";
- break;
- case PREVIEW_ICON: resPath += FAMFAMFAM_PATH + "magnifier.png";
- break;
- case SUGGESTION_TO_USER_ICON: resPath += FAMFAMFAM_PATH + "lightbulb.png";
- break;
- case ADD_PROCESSOR_TO_WORKFLOW_ICON: resPath += "open_in_BioCatalogue.png";
- break;
- case ADD_PROCESSOR_AS_FAVOURITE_ICON: resPath += FAMFAMFAM_PATH + "star.png";
- break;
- case ADD_ALL_SERVICES_AS_FAVOURITE_ICON:resPath += FAMFAMFAM_PATH + "multiple_star.png";
- break;
- case EXECUTE_HEALTH_CHECK_ICON: resPath += FAMFAMFAM_PATH + "information.png";
- break;
- case SELECT_ALL_ICON: resPath += FAMFAMFAM_PATH + "tick.png";
- break;
- case DESELECT_ALL_ICON: resPath += FAMFAMFAM_PATH + "cross.png";
- break;
- case EXPAND_ALL_ICON: resPath += FAMFAMFAM_PATH + "text_linespacing.png";
- break;
- case COLLAPSE_ALL_ICON: resPath += FAMFAMFAM_PATH + "text_linespacing (collapse).png";
- break;
- case SORT_BY_NAME_ICON: resPath += FAMFAMFAM_PATH + "style.png";
- break;
- case SORT_BY_COUNTS_ICON: resPath += FAMFAMFAM_PATH + "sum.png";
- break;
- case STYLES_CSS: resPath += "styles.css";
- break;
- default: return (null);
- }
-
- return (resPath);
- }
-
-
- private static URL getResourceLocalURL(int resourceId) {
- return (BioCataloguePerspective.class.getResource(getResourceRelPath(resourceId)));
- }
-
- private static HashMap<Integer, ImageIcon> iconMap = new HashMap<Integer, ImageIcon>();
-
- public static ImageIcon getImageIcon(int iconId)
- {
- ImageIcon result = iconMap.get(iconId);
- if (result == null) {
- result = new ImageIcon(getResourceLocalURL(iconId));
- iconMap.put(iconId, result);
- }
- return result;
- }
-
- public static ImageIcon getImageIcon(URL resourceLocalURL) {
- return (new ImageIcon(resourceLocalURL));
- }
-
-
- public static Icon getIconFromTaverna(int iconId) {
- switch (iconId) {
- case SOAP_OPERATION_ICON: return (WSDLActivityIcon.getWSDLIcon());
- case REST_METHOD_ICON: return (RESTActivityIcon.getRESTActivityIcon());
- default: return (drawMissingIcon());
- }
- }
-
-
- /**
- * This method would be called by other methods in this class
- * when they were unable to load requested icon.
- *
- * @return A 16x16 pixel icon that represents a missing icon -
- * a red cross.
- */
- private static ImageIcon drawMissingIcon()
- {
- int w = 16;
- int h = 16;
- GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
- GraphicsDevice gd = ge.getDefaultScreenDevice();
- GraphicsConfiguration gc = gd.getDefaultConfiguration();
-
- BufferedImage image = gc.createCompatibleImage(w, h, BufferedImage.TYPE_INT_ARGB);
- Graphics2D g = image.createGraphics();
- g.setColor(Color.RED);
- g.setStroke(new BasicStroke(3, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER));
- g.drawLine(4, 4, 12, 12);
- g.drawLine(12, 4, 4, 12);
- g.dispose();
-
- return new ImageIcon(image);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourcePreviewContent.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourcePreviewContent.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourcePreviewContent.java
deleted file mode 100644
index 1aa5102..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/ResourcePreviewContent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-
-import org.apache.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-
-/**
- * Helper class to hold all data about the generated preview.
- *
- * @author Sergejs Aleksejevs
- */
-public class ResourcePreviewContent
-{
- private Resource resource;
- private JComponent jcContent;
-
- public ResourcePreviewContent(Resource resource, JComponent content)
- {
- this.resource = resource;
- this.jcContent = content;
- }
-
- public Resource getResource() {
- return(this.resource);
- }
-
- public JComponent getContent() {
- return(this.jcContent);
- }
-
-
- public static ResourcePreviewContent createDummyInstance()
- {
- Resource r = new Resource(BioCatalogueClient.API_USERS_URL + "/1", "Dummy user");
- return (new ResourcePreviewContent(r, new JLabel("dummy content - JLabel")));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationIdentity.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationIdentity.java
deleted file mode 100644
index 30b6633..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationIdentity.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-/**
- * Identifies a SOAP operation (or "processor" in Taverna terms)
- * in the most straightforward way - by WSDL location and operation name.
- *
- * @author Sergejs Aleksejevs
- */
-public class SoapOperationIdentity extends SoapServiceIdentity
-{
- public static final String ACTION_STRING_SEPARATOR = "===";
-
- private final String operationName;
- private final String description;
-
- public SoapOperationIdentity(String wsdlLocation, String operationName, String description) {
- super(wsdlLocation);
- this.operationName = operationName;
- this.description = description;
- }
-
- public SoapOperationIdentity(Object errorDetails) {
- super(errorDetails);
- this.operationName = null;
- this.description = null;
- }
-
- public String getOperationName() {
- return operationName;
- }
-
- public String getDescription() {
- return description;
- }
-
-
- /**
- * @return String that can be placed into an action command (i.e. into JClickableLabel)
- * to identify a SOAP operation - WSDL location and operation name are concatenated
- * with <code>SoapOperationIdentity.ACTION_STRING_SEPARATOR</code>.
- */
- public String toActionString() {
- return (getWsdlLocation() + ACTION_STRING_SEPARATOR + this.operationName);
- }
-
-
- /**
- * @param actionString String that includes WSDL location appended by
- * <code>SoapOperationIdentity.ACTION_STRING_SEPARATOR</code>
- * and by the operation name of a SOAP operations.
- * <br/>
- * The action string may either contain only WSDL location and operation
- * name (which are joined by a specified separator) OR the action string
- * may start from <code>BioCataloguePluginConstants.ACTION_PREVIEW_SOAP_OPERATION_AFTER_LOOKUP</code>.
- * @return Instance of this class initialised with the values from the <code>actionString</code>
- * or <code>null</code> if an error occurred.
- */
- public static SoapOperationIdentity fromActionString(String actionString)
- {
- if (actionString == null) return (null);
-
- // remove the prefix if it is present
- if (actionString.startsWith(BioCataloguePluginConstants.ACTION_PREVIEW_SOAP_OPERATION_AFTER_LOOKUP)) {
- actionString = actionString.substring(BioCataloguePluginConstants.ACTION_PREVIEW_SOAP_OPERATION_AFTER_LOOKUP.length());
- }
-
- String[] parts = actionString.split(ACTION_STRING_SEPARATOR);
- if (parts == null || parts.length != 2 ||
- parts[0].length() == 0 || parts[1].length() == 0)
- {
- return (null);
- }
-
- return (new SoapOperationIdentity(parts[0], parts[1], null));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationPortIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationPortIdentity.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationPortIdentity.java
deleted file mode 100644
index acb9b54..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapOperationPortIdentity.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-public class SoapOperationPortIdentity extends SoapOperationIdentity
-{
- private String portName;
- private boolean isInput;
-
- public SoapOperationPortIdentity(String wsdlLocation, String operationName, String portName, boolean isInput) {
- super(wsdlLocation, operationName, null);
- this.portName = portName;
- this.isInput = isInput;
- }
-
- public SoapOperationPortIdentity(Object errorDetails) {
- super(errorDetails);
- }
-
- public String getPortName() {
- return portName;
- }
-
- public boolean isInput() {
- return isInput;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapProcessorIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapProcessorIdentity.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapProcessorIdentity.java
deleted file mode 100644
index 066f519..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapProcessorIdentity.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-/**
- * Identifies a SOAP Processor in Taverna terms. Adds a local name
- * attribute to the details available in <code>SoapOperationIdentity</code>.
- *
- * @author Sergejs Aleksejevs
- */
-public class SoapProcessorIdentity extends SoapOperationIdentity
-{
- private final String localName;
-
- public SoapProcessorIdentity(String wsdlLocation, String operationName, String localName) {
- super(wsdlLocation, operationName, null);
- this.localName = localName;
- }
-
- public SoapProcessorIdentity(Object errorDetails) {
- super(errorDetails);
- this.localName = null;
- }
-
- public String getLocalName() {
- return localName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapServiceIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapServiceIdentity.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapServiceIdentity.java
deleted file mode 100644
index c80224f..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/SoapServiceIdentity.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-/**
- * Identifies a SOAP service in the most straightforward
- * way - by WSDL location.
- *
- * @author Sergejs Aleksejevs
- */
-public class SoapServiceIdentity
-{
- private final String wsdlLocation;
-
- // this variable holds an object that will be displayable
- private final Object errorDetails;
-
- public SoapServiceIdentity(String wsdlLocation) {
- this.wsdlLocation = wsdlLocation;
- this.errorDetails = null;
- }
-
- public SoapServiceIdentity(Object errorDetails) {
- this.errorDetails = errorDetails;
- this.wsdlLocation = null;
- }
-
- public String getWsdlLocation() {
- return (wsdlLocation);
- }
-
- public boolean hasError() {
- return (errorDetails != null);
- }
-
- /**
- * @return Returned object contains an object that may be displayed
- * in a JOptionPane or printed (in other words defining a
- * sensible way of displaying itself), which has details of
- * an error that has occurred which prevented from populating
- * this instance with the actual details of their SOAP service.
- */
- public Object getErrorDetails() {
- return (errorDetails);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Tag.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Tag.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Tag.java
deleted file mode 100644
index 937304a..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Tag.java
+++ /dev/null
@@ -1,234 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-import java.io.Serializable;
-import java.util.Comparator;
-
-import org.apache.commons.lang.StringEscapeUtils;
-
-
-/**
- * @author Sergejs Aleksejevs
- */
-public class Tag implements Serializable
-{
- private static final long serialVersionUID = 784872111173271581L;
-
- private String tagURI; // URI to use on BioCatalogue to fetch all tagged items
- private String tagNamespace; // namespace where this tag is defined
- private String tagDisplayName; // only the actual tag (for display within the tag cloud)
- private String fullTagName; // full tag name - including namespace
- private int itemCount; // count of tagged items
-
-
- /**
- * Constructs a Tag instance from primitive components.
- * All values are set directly, no internal inference made.
- *
- * @param tagURI
- * @param tagNamespace
- * @param tagDisplayName
- * @param fullTagName
- * @param itemCount
- */
- public Tag(String tagURI, String tagNamespace, String tagDisplayName, String fullTagName, int itemCount)
- {
- this.tagURI = tagURI;
- this.tagNamespace = tagNamespace;
- this.tagDisplayName = tagDisplayName;
- this.setFullTagName(fullTagName);
- this.itemCount = itemCount;
- }
-
-
- /**
- * Constructs Tag instance from an XML representation of the Tag from BioCatalogue API.
- *
- * @param xmlTag
- */
- public Tag(org.biocatalogue.x2009.xml.rest.Tag xmlTag)
- {
- // these values come directly from the XML data obtained via the API
- this.tagURI = xmlTag.getHref();
- this.fullTagName = xmlTag.getName();
- this.itemCount = xmlTag.getTotalItemsCount().intValue();
-
- // NB! Namespace and the display name need to be inferred 'manually'.
- // First - set the namespace; it's value is taken from the 'namespace'
- // attribute of the tag URI.
- this.tagNamespace = Util.extractURLParameter(this.tagURI, "namespace");
-
- // Now set the display name; if full tag name is not a part of any ontology,
- // display name will be identical to the full name.
- if (this.fullTagName.startsWith("<") && this.fullTagName.endsWith(">")) {
- int iStart = this.fullTagName.lastIndexOf('#') + 1;
- this.tagDisplayName = this.fullTagName.substring(iStart, this.fullTagName.length() - 1);
- }
- else {
- this.tagDisplayName = this.fullTagName;
- }
- }
-
-
- // *** Various getters and setters ***
-
- public void setTagURI(String tagURI) {
- this.tagURI = tagURI;
- }
-
- public String getTagURI() {
- return tagURI;
- }
-
-
- public void setTagNamespace(String tagNamespace) {
- this.tagNamespace = tagNamespace;
- }
-
- public String getTagNamespace() {
- return tagNamespace;
- }
-
-
- public void setTagDisplayName(String tagDisplayName) {
- this.tagDisplayName = tagDisplayName;
- }
-
- public String getTagDisplayName() {
- return tagDisplayName;
- }
-
-
- public void setFullTagName(String fullTagName) {
- this.fullTagName = fullTagName;
- }
-
- /**
- * @return Unique and unambiguous name of this tag on BioCatalogue:<br/>
- * <ul>
- * <li>for tags with no namespaces, they it is just plain text names;</li>
- * <li>for those with namespaces, it will have the following form:<br/>
- * "<code>< http://www.mygrid.org.uk/ontology#retrieving ></code>" (without spaces, though), where
- * the first part before the '#' symbol is the namespace and the second part
- * is the actual tag within that namespace.</li></ul>
- */
- public String getFullTagName() {
- return fullTagName;
- }
-
-
- public int getItemCount() {
- return itemCount;
- }
-
- public void setItemCount(int itemCount) {
- this.itemCount = itemCount;
- }
-
-
- // *** Tag Comparators ***
-
- public static class ReversePopularityComparator implements Comparator<Tag>
- {
- public ReversePopularityComparator() {
- super();
- }
-
- public int compare(Tag t1, Tag t2)
- {
- if (t1.getItemCount() == t2.getItemCount()) {
- // in case of the same popularity, compare by full tag names (which are unique)
- return (t1.getFullTagName().compareTo(t2.getFullTagName()));
- }
- else {
- // popularity isn't the same; arrange by popularity (more popular first)
- return (t2.getItemCount() - t1.getItemCount());
- }
- }
- }
-
-
- public static class AlphanumericComparator implements Comparator<Tag>
- {
- public AlphanumericComparator() {
- super();
- }
-
- public int compare(Tag t1, Tag t2) {
- // full tag names are unique on BioCatalogue
- return (t1.getFullTagName().compareTo(t2.getFullTagName()));
- }
- }
-
- public static class AlphabeticalIgnoreCaseComparator implements Comparator<Tag>
- {
- public AlphabeticalIgnoreCaseComparator() {
- super();
- }
-
- public int compare(Tag t1, Tag t2) {
- // full tag names are unique on BioCatalogue
- return (t1.getTagDisplayName().compareToIgnoreCase(t2.getTagDisplayName()));
- }
- }
-
- /**
- * This makes sure that things like instanceOf() and remove() in List interface
- * work properly - this way resources are treated to be the same if they store
- * identical data, rather than they simply hold the same reference.
- */
- public boolean equals(Object other) {
- // could only be equal to another Tag object, not anything else
- if (! (other instanceof Tag)) return (false);
-
- // 'other' object is a Tag; equality is based on the data stored
- // in the current and 'other' Tag instances
- Tag otherTag = (Tag)other;
- return (this.itemCount == otherTag.itemCount && this.fullTagName.equals(otherTag.fullTagName));
- }
-
-
- public String toString()
- {
- return ("Tag (" + this.fullTagName + ", " + this.itemCount + ")");
- }
-
-
- /**
- * This method is used to generate the tooltip to be shown over the tag
- * in the tagcloud. Shown text will contain the full tag name, namespace
- * and frequency.
- *
- * @return HTML encoded string ready to be put into the tooltip.
- */
- public String getTagCloudTooltip()
- {
- StringBuilder tooltip = new StringBuilder("<html>");
-
- tooltip.append(" <b>" + (this.fullTagName.length() > this.tagDisplayName.length() ? "Full tag" : "Tag") + ": </b>" + StringEscapeUtils.escapeHtml(this.fullTagName));
- if (this.tagNamespace != null && this.tagNamespace.length() > 0) {
- tooltip.append("<br> <b>Namespace: </b>" + StringEscapeUtils.escapeHtml(this.tagNamespace));
- }
- tooltip.append("<br> <b>Frequency: </b>" + this.itemCount);
- tooltip.append("</html>");
-
- return tooltip.toString();
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Util.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Util.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Util.java
deleted file mode 100644
index d92b047..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/Util.java
+++ /dev/null
@@ -1,809 +0,0 @@
-package org.apache.taverna.biocatalogue.model;
-/*
- * 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.
- */
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Font;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamClass;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-
-import net.sf.taverna.raven.appconfig.ApplicationRuntime;
-import org.apache.taverna.ui.perspectives.biocatalogue.BioCataloguePerspective;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.log4j.Logger;
-
-/**
- * Class containing various reusable helper methods.
- *
- * @author Sergejs Aleksejevs
- */
-public class Util
-
-
-{
-
- private static Logger logger = Logger.getLogger(Util.class);
-
-
- /**
- * Makes sure that one component (for example, a window) is centered horizontally and vertically
- * relatively to the other component. This is achieved by aligning centers of the two components.
- *
- * This method can be used even if the 'dependentComponent' is larger than the 'mainComponent'. In
- * this case it is probably only useful for centering windows against each other rather than
- * components inside a container.
- *
- * Method also makes sure that the dependent component will not be placed above the screen's upper
- * edge and to the left of the left edge.
- */
- public static void centerComponentWithinAnother(Component mainComponent, Component dependentComponent)
- {
- int iMainComponentCenterX = (int)Math.round(mainComponent.getLocationOnScreen().getX() + (mainComponent.getWidth() / 2));
- int iPosX = iMainComponentCenterX - (dependentComponent.getWidth() / 2);
- if (iPosX < 0) iPosX = 0;
-
- int iMainComponentCenterY = (int)Math.round(mainComponent.getLocationOnScreen().getY() + (mainComponent.getHeight() / 2));
- int iPosY = iMainComponentCenterY - (dependentComponent.getHeight() / 2);
- if (iPosY < 0) iPosY = 0;
-
- dependentComponent.setLocation(iPosX, iPosY);
- }
-
-
- /**
- * The parameter is the class name to be processed; class name is likely to be in
- * the form <class_name>$<integer_value>, where the trailing part starting with
- * the $ sign indicates the anonymous inner class within the base class. This will
- * strip out that part of the class name to get the base class name.
- */
- public static String getBaseClassName(String strClassName)
- {
- // strip out the class name part after the $ sign; return
- // the original value if the dollar sign wasn't found
- String strResult = strClassName;
-
- int iDollarIdx = strResult.indexOf("$");
- if (iDollarIdx != -1) strResult = strResult.substring(0, iDollarIdx);
-
- return (strResult);
- }
-
-
- /**
- * Makes sure that the supplied string is no longer than provided length.
- */
- public static String ensureStringLength(String str, int iLength) {
- if (str.length() > iLength) str = str.substring(0, iLength) + " (...)";
- return (str);
- }
-
- /**
- * Makes sure that the supplied string doesn't have any lines (separated by HTML line break tag) longer
- * than specified; assumes that there are no line breaks in the source line.
- *
- * @param str The string to work with.
- * @param iLineLength Desired length of each line.
- * @param bIgnoreBrokenWords True if line breaks are to be inserted exactly each <code>iLineLength</code>
- * symbols (which will most likely cause broken words); false to insert line breaks
- * at the first space after <code>iLineLength</code> symbols since last line break.
- * @return New string with inserted HTML line breaks.
- */
- public static String ensureLineLengthWithinString(String str, int iLineLength, boolean bIgnoreBrokenWords)
- {
- StringBuilder out = new StringBuilder(str);
-
- // keep inserting line breaks from end of the line till the beginning until all done
- int iLineBreakPosition = 0;
- while (iLineBreakPosition >= 0 && iLineBreakPosition < out.length())
- {
- // insert line break either exactly at calculated position or
- iLineBreakPosition += iLineLength;
- iLineBreakPosition = (bIgnoreBrokenWords ?
- iLineBreakPosition :
- out.indexOf(" ", iLineBreakPosition));
-
- if (iLineBreakPosition > 0 && iLineBreakPosition < out.length()) {
- out.insert(iLineBreakPosition, "<br>");
- iLineBreakPosition += 4; // -- four is the length of "<br>"
- }
- }
-
- return (out.toString());
- }
-
-
- /**
- * This is a convenience method for calling
- * {@link Util#pluraliseNoun(String, long, boolean)}
- * with <code>false</code> as a value for third parameter.
- */
- public static String pluraliseNoun(String noun, long count) {
- return (pluraliseNoun(noun, count, false));
- }
-
- /**
- * Performs naive pluralisation of the supplied noun.
- *
- * @param noun Noun in a singular form.
- * @param count Number of occurrences of the item, for which the noun is provided.
- * @param forceAppendingSByDefault <code>true</code> to make sure that "y" -> "ies"
- * substitution is <b>not made</b>, but instead "s" is appended
- * to unmodified root of the noun.
- * @return Pluralised <code>noun</code>: with appended -s or -y replaced with -ies.
- */
- public static String pluraliseNoun(String noun, long count, boolean forceAppendingSByDefault)
- {
- if (count % 10 != 1 || count == 11) {
- if (!forceAppendingSByDefault && noun.endsWith("y")) {
- return (noun.substring(0, noun.length() - 1) + "ies"); // e.g. ENTRY -> ENTRIES
- }
- else {
- return (noun + "s"); // e.g. SHIP -> SHIPS
- }
- }
- else {
- // no need to pluralise - count is of the type 21, 31, etc..
- return noun;
- }
- }
-
-
- /**
- * Calculates time difference between two {@link Calendar} instances.
- *
- * @param earlier The "earlier" date.
- * @param later The "later" date.
- * @param maxDifferenceMillis The maximum allowed time difference between the two
- * {@link Calendar} instances, in milliseconds. If the calculated
- * difference will exceed <code>maxDifferenceMillis</code>,
- * <code>null</code> will be returned. If this parameter has
- * a value <code>less or equal to zero</code>, any time difference
- * between the {@link Calendar} instances will be permitted.
- * @return String in the form "XX seconds|minutes|hours|days ago". Proper pluralisation will
- * be performed on the name of the time unit. <code>null</code> will be returned in
- * cases where one of the {@link Calendar} instances is <code>null</code>, time
- * difference between the provided instances is greater than <code>maxDifferenceMillis</code>
- * or <code>earlier</code> date is not really earlier than <code>later</code> one.
- */
- public static String getAgoString(Calendar earlier, Calendar later, long maxDifferenceMillis)
- {
- // one of the dates is missing
- if (earlier == null || later == null) {
- return null;
- }
-
- if (earlier.before(later)) {
- long differenceMillis = later.getTimeInMillis() - earlier.getTimeInMillis();
-
- if (maxDifferenceMillis <= 0 || (maxDifferenceMillis > 0 && differenceMillis <= maxDifferenceMillis))
- {
- long result = 0;
- String unitName = "";
-
- if (differenceMillis < 60 * 1000) {
- result = differenceMillis / 1000;
- unitName = "second";
- }
- else if (differenceMillis < 60 * 60 * 1000) {
- result = differenceMillis / (60 * 1000);
- unitName = "minute";
- }
- else if (differenceMillis < 24 * 60 * 60 * 1000) {
- result = differenceMillis / (60 * 60 * 1000);
- unitName = "hour";
- }
- else {
- result = differenceMillis / (24 * 60 * 60 * 1000);
- unitName = "day";
- }
-
- return (result + " " + Util.pluraliseNoun(unitName, result, true) + " ago");
- }
- else {
- // the difference is too large - larger than the supplied threshold
- return null;
- }
- }
- else {
- // the "later" date is not really later than the "earlier" one
- return null;
- }
- }
-
-
- /**
- * Joins the set of tokens in the provided list into a single string.
- * This method is a shorthand for {@link Util#join(List, String, String, String)}.
- *
- * @param tokens List of strings to join.
- * @param separator Separator to insert between individual strings.
- * @return String of the form <code>[token1][separator][token2][separator]...[tokenN]</code>
- */
- public static String join(List<String> tokens, String separator) {
- return (join(tokens, null, null, separator));
- }
-
- /**
- * Joins the set of tokens in the provided list into a single string.
- *
- * Any empty strings or <code>null</code> entries in the <code>tokens</code> list
- * will be removed to achieve a better resulting joined string.
- *
- * @param tokens List of strings to join.
- * @param prefix String to prepend to each token.
- * @param suffix String to append to each token.
- * @param separator Separator to insert between individual strings.
- * @return String of the form <code>[prefix][token1][suffix][separator][prefix][token2][suffix][separator]...[prefix][tokenN][suffix]</code>
- * <br/><br/>
- * Example: call <code>join(["cat","sat","on","the","mat"], "[", "]", ", ")</code> results in the following output:
- * <code>"[cat], [sat], [on], [the], [mat]"</code>
- */
- public static String join(List<String> tokens, String prefix, String suffix, String separator)
- {
- if (tokens == null) {
- // nothing to join
- return (null);
- }
-
- // list of strings is not empty, but some pre-processing is necessary
- // to remove any empty strings that may be there
- for (int i = tokens.size() - 1; i >= 0; i--) {
- if (tokens.get(i) == null || tokens.get(i).length() == 0) {
- tokens.remove(i);
- }
- }
-
- // now start the actual processing, but it may be the case that all strings
- // were empty and we now have an empty list
- if (tokens.isEmpty()) {
- // nothing to join - just return an empty string
- return ("");
- }
- else {
- // there are some tokens -- perform the joining
- String effectivePrefix = (prefix == null ? "" : prefix);
- String effectiveSuffix = (suffix == null ? "" : suffix);
- String effectiveSeparator = (separator == null ? "" : separator);
-
- StringBuilder result = new StringBuilder();
- for (int i = 0; i < tokens.size(); i++) {
- result.append(effectivePrefix + tokens.get(i) + effectiveSuffix);
- result.append(i == tokens.size() - 1 ? "" : effectiveSeparator);
- }
-
- return (result.toString());
- }
- }
-
- /**
- * Determines whether the plugin is running as a standalone JFrame or inside Taverna Workbench.
- * This is a naive test, based only on the fact that Taverna uses Raven ApplicationRuntime.
- */
- public static boolean isRunningInTaverna()
- {
- try {
- // ApplicationRuntime class is defined within Taverna API. If this is available,
- // it should mean that the plugin runs within Taverna.
- ApplicationRuntime.getInstance();
- return true;
- }
- catch (NoClassDefFoundError e) {
- return false;
- }
- }
-
-
- // === STRIPPING OUT HTML FROM STRINGS ===
-
- public static String prepareStringForComponent(String source) {
- return "<html>" + StringEscapeUtils.escapeHtml(source) + "</html>";
- }
-
-
- /*
- * === The following section is providing URL handling methods. ===
- */
-
- /**
- * See: {@link Util#appendStringBeforeParametersOfURL(String, String, boolean)}
- *
- * Assumes the last parameter as false, so that the URL encoding will be done.
- */
- public static String appendStringBeforeParametersOfURL(String url, String strToAppend) {
- return (appendStringBeforeParametersOfURL(url, strToAppend, false));
- }
-
- /**
- * Tiny helper to strip out all HTML tags. This will not leave any HTML tags
- * at all (so that the content can be displayed in DialogTextArea - and the
- * like - components. This helps to present HTML content inside JAVA easier.
- */
- public static String stripAllHTML(String source) {
- // don't do anything if not string is provided
- if (source == null)
- return ("");
-
- // need to preserve at least all line breaks
- // (ending and starting paragraph also make a line break)
- source = source.replaceAll("</p>[\r\n]*<p>", "<br/>");
- source = source.replaceAll("[\\s]+", " ");
- source = source.replaceAll("\\<br/?\\>", "\n");
- source = source.replaceAll("\n ", "\n");
-
- // strip all HTML
- source = source.replaceAll("\\<.*?\\>", ""); // any HTML tags
- source = source.replaceAll("&\\w{1,4};", ""); // this is for things like " ", ">", etc
-
- return (source);
- }
-
-
- /**
- * Appends given string at the end of the provided URL just before the list of parameters in the url.
- *
- * For example, appending ".xml" to URL "http://www.sandbox.biocatalogue.org/services?tag=blast" will
- * yield "http://www.sandbox.biocatalogue.org/services.xml?tag=blast".
- *
- * No duplication checking is made - if the URL is already ending (before parameters) with the value of
- * the string to append, that string will still be appended.
- *
- * @param url URL to append the string to.
- * @param strToAppend The string to append. The value will be url-encode before appending.
- * @return New string containing modified <code>url</code> with the <code>strToAppend</code> appended
- * before the "query string" of the URL.
- */
- public static String appendStringBeforeParametersOfURL(String url, String strToAppend, boolean ignoreURLEncoding)
- {
- StringBuilder modifiedURL = new StringBuilder(url);
-
- int iPositionToInsertProvidedString = modifiedURL.indexOf("?");
- if (iPositionToInsertProvidedString == -1) iPositionToInsertProvidedString = modifiedURL.length();
-
- String stringToInsert = (ignoreURLEncoding ? strToAppend : Util.urlEncodeQuery(strToAppend));
- modifiedURL.insert(iPositionToInsertProvidedString, stringToInsert);
-
- return (modifiedURL.toString());
- }
-
-
- /**
- * This method takes a collection of name-value pairs in the form of a map.
- * It then adds all parameters from this map to the provided URL.
- *
- * If any parameter has the same name as was already present in the URL, the new value
- * will replace the existing one.
- *
- * The implementation of this method is not particularly efficient - it makes a
- * lot of overhead, but it's fine for non-intensive usage.
- *
- * @param url The URL to add a new parameter to.
- * @param Map of parameters to add to the URL. Keys and values of the map are the names and values for URL parameters.
- * @return New string which is the original <code>url</code> with all provided
- * parameters (in the form <code>name</code>=<code>value</code> pair) added to it.
- */
- public static String appendAllURLParameters(String url, Map<String,String> parameterMap)
- {
- if (parameterMap == null || parameterMap.size() == 0) {
- // nothing to add, return the same URL
- return (url);
- }
- else {
- // just call an overloaded method which has the main logic
- // to do this action for each name-value pair in the map
- String out = url;
- for (Map.Entry<String,String> anotherParameter : parameterMap.entrySet()) {
- out = appendURLParameter(out, anotherParameter);
- }
- return (out);
- }
- }
-
-
-
- /**
- * This method takes a string representation of a URL and a name-value pair
- * of strings - in the form of Map.Entry instance to add to the URL as a new parameter.
- *
- * If parameter with the same name was already present in the URL, the new value
- * will replace the existing one.
- *
- * @param url The URL to add a new parameter to.
- * @param Map.Entry instance containing the name & the value for the parameter to add.
- * @return New string which is the original <code>url</code> with the desired
- * parameter (<code>name</code>=<code>value</code> pair) added to it.
- */
- public static String appendURLParameter(String url, Map.Entry<String,String> parameter)
- {
- if (parameter == null) {
- // nothing to add, return the same URL
- return (url);
- }
- else {
- // just call an overloaded method which has the main logic to do this action
- return (appendURLParameter(url, parameter.getKey(), parameter.getValue()));
- }
- }
-
-
- /**
- * This method takes a string representation of a URL and a name-value pair
- * of strings to add to the URL as a new parameter.
- *
- * If parameter with the same name was already present in the URL, the new value
- * will replace the existing one.
- *
- * @param url The URL to add a new parameter to.
- * @param parameter String array with 2 elements - first element is the name
- * of the parameter to add, second - the value of the parameter.
- * @return New string which is the original <code>url</code> with the desired
- * parameter (<code>name</code>=<code>value</code> pair) added to it.
- */
- public static String appendURLParameter(String url, String[] parameter)
- {
- if (parameter == null || parameter.length != 2) {
- // nothing to add, return the same URL
- return (url);
- }
- else {
- // just call an overloaded method which has the main logic to do this action
- return (appendURLParameter(url, parameter[0], parameter[1]));
- }
- }
-
-
- /**
- * This method takes a string representation of a URL and a name-value pair
- * of strings to add to the URL as a new parameter.
- *
- * If parameter with the same name was already present in the URL, the new value
- * will replace the existing one.
- *
- * @param url The URL to add a new parameter to.
- * @param name Name of the parameter to add.
- * @param value Value of the parameter to add.
- * @return New string which is the original <code>url</code> with the desired
- * parameter (<code>name</code>=<code>value</code> pair) added to it.
- */
- public static String appendURLParameter(String url, String name, String value)
- {
- // if name of the parameter is not given, ignore this request
- // (makes sense to return the same URL as the input in this case -
- // as appending "nothing" wouldn't make it any different)
- if (name == null || name.length() == 0) {
- return (url);
- }
-
- // do everything in the protected block
- try
- {
- // parse the parameters of the given URL
- Map<String,String> urlParameters = extractURLParameters(url);
- if (urlParameters == null) {
- // there were no parameters in the original URL, create new map
- urlParameters = new HashMap<String,String>();
- }
-
- // add the new parameter (this will replace a parameter with identical
- // name if it was already present in the map)
- urlParameters.put(name, value);
-
- // parse the URL string into the URL object to extract original query string
- URL theURL = new URL(url);
- String originalQueryString = theURL.getQuery();
-
- // prepare the basis for the new URL to return
- String newUrl = null;
- if (originalQueryString != null) {
- // replace the original query string with empty space to
- // give way for appending the new query string
- newUrl = url.replace(originalQueryString, "");
- }
- else {
- // there were no parameters in the original URL
- newUrl = url + "?";
- }
-
- // append the new query string
- newUrl += constructURLQueryString(urlParameters);
-
- return (newUrl);
- }
- catch (Exception e)
- {
- logger.error("\nCouldn't append parameter ('" + name + "', '" + value + "') to the URL: " + url, e);
- return (null);
- }
- }
-
-
- /**
- * Extracts a value of a specific parameter from the supplied URL.
- *
- * @param url The URL to extract the parameter from.
- * @param parameterName Name of the URL parameter to extract the value for.
- * @return Value of the parameter with <code>parameterName</code> in the given <code>url</code>.
- * If the parameter with specified name is not found in the given <code>url</code>,
- * <code>null</code> is returned instead.
- */
- public static String extractURLParameter(String url, String parameterName)
- {
- // both URL and the name of the required parameter must be supplied
- if (url == null || url.length() == 0 || parameterName == null || parameterName.length() == 0) return null;
-
- Map<String,String> urlParameters = extractURLParameters(url);
- if (urlParameters != null) {
- // the URL has some parameters; check what's the value of the desired parameter
- return (urlParameters.get(parameterName));
- }
- else {
- // the URL doesn't contain any parameters
- return (null);
- }
- }
-
-
- /**
- * Extracts the query string from the provided URL. Parses this query string into
- * a map of parameters.
- *
- * All parameters (both names and values) will have special characters unescaped
- * (i.e. decoded from the standard url-encoding) and can be used directly.
- *
- * @param url The string representation of the URL to parse.
- */
- public static Map<String,String> extractURLParameters(String url)
- {
- try {
- // extract the query part of the supplied URL
- URL theURL = new URL(url);
- String queryString = theURL.getQuery();
-
- // prepare storage for output
- Map<String,String> parameterMap = null;
-
- // extract each name-value pair from query string (if any are specified in the URL)
- if (queryString != null && queryString.length() > 0)
- {
- // only initialise if there are some parameters
- parameterMap = new HashMap<String,String>();
-
- for (String parameter : queryString.split("&")) {
- String[] nameValueArr = parameter.split("=");
-
- String name = nameValueArr[0]; // parameter name must always be present
- String value = (nameValueArr.length == 2 ? nameValueArr[1] : null); // could be that parameter value is not set (e.g. "q=") - insert null then
-
- // decode possible special characters
- name = urlDecodeQuery(name);
- if (value != null) value = urlDecodeQuery(value);
-
- parameterMap.put(name, value);
- }
- }
-
- return (parameterMap);
- }
- catch (MalformedURLException e)
- {
- // some problem occurred - report it; can't return any data in this case
- logger.error("Couldn't parse parameters of a URL: " + url + "; details below:", e);
- return null;
- }
- }
-
-
- /**
- * This method is the opposite for <code>extractURLParameters(String url)</code>.
- * It takes a map of parameters, performs URL-encoding of each and assembles them
- * into a query string.
- *
- * The query string then can be added to the <code>URL</code> object by using standard
- * Java API.
- *
- * @param urlParameters Map of parameters to use in query string construction.
- * @return URL-encoded query string.
- */
- public static String constructURLQueryString(Map<String,String> urlParameters)
- {
- if (urlParameters != null) {
- StringBuilder queryString = new StringBuilder();
-
- // iterate through all parameters and reconstruct the query string
- for (Map.Entry<String,String> parameter : urlParameters.entrySet())
- {
- if (queryString.length() > 0) queryString.append("&"); // parameter separator
- queryString.append(urlEncodeQuery(parameter.getKey()) + "=" + urlEncodeQuery(parameter.getValue()));
- }
-
- return (queryString.toString());
- }
- else {
- return (null);
- }
- }
-
-
- /**
- * Prepares the string to serve as a part of url query to the server.
- * @param query The string that needs URL encoding.
- * @return URL encoded string that can be inserted into the request URL.
- */
- public static String urlEncodeQuery(String query)
- {
- // "fast exit" - if null supplied, just return an empty string;
- // this is because in the URLs we have "q=", rather than "q=null" - this will cater for such cases
- if (query == null) return ("");
-
- // encode the query
- String strRes = "";
- try {
- strRes = URLEncoder.encode(query, "UTF-8");
- }
- catch (UnsupportedEncodingException e) {
- // do nothing
- }
-
- return (strRes);
- }
-
-
- /**
- * Decodes a string which came as a part of of URL (e.g. a URL parameter). This converts
- * codes of escaped special characters back into those special characters.
- *
- * @param query The string that needs URL decoded.
- * @return Decoded string that will contain all the special characters.
- */
- public static String urlDecodeQuery(String query)
- {
- String strRes = "";
-
- try {
- strRes = URLDecoder.decode(query, "UTF-8");
- }
- catch (UnsupportedEncodingException e) {
- // do nothing
- }
-
- return (strRes);
- }
-
-
- /**
- * This method is "clones" an object supplied as an argument. It uses
- * serialisation to achieve this (as opposed to manually implementing deep
- * copying of all referenced objects in the graph of the provided object).
- * This technique is used to make sure that the new object will be exact
- * replica, but totally independent of the original one.
- *
- * Note that this code works ~100 times slower than it would do if deep copying
- * was implemented. However, this will not be used in tight loops (and in loops
- * at all), so for one-off tasks it is fine.
- *
- * @author Dave Miller<br/>
- * Original version of the code in this method is taken from
- * <a href="http://www.javaworld.com/javaworld/javatips/jw-javatip76.html?page=2">
- * http://www.javaworld.com/javaworld/javatips/jw-javatip76.html?page=2
- * </a> [accessed on 25/Feb/2010].
- * <br/><br/>
- *
- * @author Subhajit Dasgupta<br/>
- * Example of using an alternative class loader during object de-serialisation
- * was taken from
- * <a href="http://blogs.sun.com/adventures/entry/desrializing_objects_custom_class_loaders">
- * http://blogs.sun.com/adventures/entry/desrializing_objects_custom_class_loaders
- * </a> [accessed on 29/Mar/2010].
- *
- * @return Deep copy of the provided object. If deep copying doesn't succeed,
- * <code>null</code> is returned.
- */
- public static Object deepCopy(Object objectToCopy)
- {
- // a "safety net" - a class loader of BioCatalogue perspective may be used in
- // de-serialisation process to make sure that all classes are recognised
- // (system class loader may not be able to "see" all BioCatalogue plugin's files,
- // but just those in Taverna's /lib folder)
- final ClassLoader[] customClassLoaders = new ClassLoader[] { BioCataloguePerspective.class.getClassLoader() };
-
- try
- {
- ObjectOutputStream oos = null;
- ObjectInputStream ois = null;
- try
- {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- oos = new ObjectOutputStream(bos);
-
- // serialise and pass the object
- oos.writeObject(objectToCopy);
- oos.flush();
-
- // read and return the new object
- ByteArrayInputStream bin = new ByteArrayInputStream(bos.toByteArray());
- ois = new ObjectInputStream(bin) {
- /**
- * <code>resolveClass()</code> method is overridden to make use of
- * custom ClassLoader in the de-serialisation process.
- * <br/>
- * This is needed to make sure that the ClassLoader of the BioCatalogue
- * perspective is used as opposed to the system ClassLoader which will
- * only be able to see classes from Taverna's /lib folder.
- */
- protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException
- {
- String className = desc.getName();
- try {
- // attempt to use default class loader
- return Class.forName(className);
- }
- catch (ClassNotFoundException exc)
- {
- // default class loader was unable to locate a required class -
- // attempt to use one of the provided class loaders
- for (ClassLoader cl : customClassLoaders) {
- try {
- return cl.loadClass(className);
- }
- catch (ClassNotFoundException e) {
- /* do nothing here - there may be other class loaders to try */
- }
- }
- // none of the class loaders was able to recognise the currently
- // de-serialised class, so it's indeed an exception
- throw new ClassNotFoundException(className +
- " -- neither system, nor alternative class loaders were able to load this class");
- }
- }
- };
- return ois.readObject();
- }
- catch(Exception e)
- {
- logger.error("Could not perform deep copy of " + objectToCopy.getClass() + " instance", e);
- }
- finally
- {
- oos.close();
- ois.close();
- }
- }
- catch (Exception e) {
- logger.error("Could not close object streams during deep copy of " + objectToCopy.getClass() + " instance");
- }
-
- // Error occurred - couldn't produce the deep copy...
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeanForPOSTToFilteredIndex.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeanForPOSTToFilteredIndex.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeanForPOSTToFilteredIndex.java
deleted file mode 100644
index ea04d07..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeanForPOSTToFilteredIndex.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.taverna.biocatalogue.model.connectivity;
-/*
- * 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.
- */
-
-import java.util.Map;
-
-/**
- *
- * @author Sergejs Aleksejevs
- */
-public class BeanForPOSTToFilteredIndex
-{
- public Map<String, String[]> filters;
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeansForJSONLiteAPI.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeansForJSONLiteAPI.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeansForJSONLiteAPI.java
deleted file mode 100644
index 42481d8..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BeansForJSONLiteAPI.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.taverna.biocatalogue.model.connectivity;
-/*
- * 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.
- */
-
-
-/**
- * Binding beans for GSON library to instantiate objects
- * from JSON data obtained from the 'Lite' version of the
- * BioCatalogue JSON API.
- *
- * @author Sergejs Aleksejevs
- */
-public class BeansForJSONLiteAPI
-{
-
- public static abstract class ResourceIndex
- {
- public ResourceIndex() { }
- public abstract ResourceLinkWithName[] getResources();
- }
-
-
- public static class SOAPOperationsIndex extends ResourceIndex {
- public SOAPOperationsIndex() { }
- public ResourceLinkWithName[] soap_operations;
-
- public ResourceLinkWithName[] getResources() {
- return soap_operations;
- }
- }
-
- public static class RESTMethodsIndex extends ResourceIndex {
- public RESTMethodsIndex() { }
- public ResourceLinkWithName[] rest_methods;
-
- public ResourceLinkWithName[] getResources() {
- return rest_methods;
- }
- }
-
- public static class ServicesIndex extends ResourceIndex {
- public ServicesIndex() { }
- public ResourceLinkWithName[] services;
-
- public ResourceLinkWithName[] getResources() {
- return services;
- }
- }
-
- public static class ServiceProvidersIndex extends ResourceIndex {
- public ServiceProvidersIndex() { }
- public ResourceLinkWithName[] service_providers;
-
- public ResourceLinkWithName[] getResources() {
- return service_providers;
- }
- }
-
- public static class UsersIndex extends ResourceIndex {
- public UsersIndex() { }
- public ResourceLinkWithName[] users;
-
- public ResourceLinkWithName[] getResources() {
- return users;
- }
- }
-
-
-
- public static class ResourceLinkWithName
- {
- private ResourceLinkWithName() { }
-
- private String resource;
- private String name;
-
- public String getURL() {
- return (this.resource);
- }
-
- public String getName() {
- return (this.name);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BioCatalogueAPIRequest.java
----------------------------------------------------------------------
diff --git a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BioCatalogueAPIRequest.java b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BioCatalogueAPIRequest.java
deleted file mode 100644
index 0cf892a..0000000
--- a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/biocatalogue/model/connectivity/BioCatalogueAPIRequest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.apache.taverna.biocatalogue.model.connectivity;
-/*
- * 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.
- */
-
-/**
- * A class to wrap BioCatalogue API requests - will include
- * the type (GET, POST, etc), URL and the data to send
- * if that's a POST / PUT request.
- *
- * @author Sergejs Aleksejevs
- */
-public class BioCatalogueAPIRequest
-{
- public static enum TYPE {
- GET,
- POST,
- PUT,
- DELETE
- }
-
-
- private TYPE requestType;
- private String url;
- private String data;
-
-
- public BioCatalogueAPIRequest(TYPE requestType, String url, String data) {
- this.requestType = requestType;
- this.url = url;
- this.data = data;
- }
-
-
- public TYPE getRequestType() {
- return requestType;
- }
-
- public String getURL(){
- return url;
- }
- public void setURL(String url) {
- this.url = url;
- }
-
- public String getData(){
- return data;
- }
-
-}