You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/04/14 20:31:14 UTC
[72/90] [abbrv] AIRAVATA-1124
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java
new file mode 100644
index 0000000..f62f538
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java
@@ -0,0 +1,112 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.commons.gfac.type.ServiceDescription;
+import org.apache.airavata.xbaya.XBayaEngine;
+import org.apache.airavata.xbaya.model.registrybrowser.AiravataConfigurations;
+import org.apache.airavata.xbaya.model.registrybrowser.ApplicationDeploymentDescriptionWrap;
+import org.apache.airavata.xbaya.model.registrybrowser.ApplicationDeploymentDescriptions;
+import org.apache.airavata.xbaya.model.registrybrowser.EventingServiceURL;
+import org.apache.airavata.xbaya.model.registrybrowser.EventingServiceURLs;
+import org.apache.airavata.xbaya.model.registrybrowser.GFacURL;
+import org.apache.airavata.xbaya.model.registrybrowser.GFacURLs;
+import org.apache.airavata.xbaya.model.registrybrowser.HostDescriptions;
+import org.apache.airavata.xbaya.model.registrybrowser.InputParameters;
+import org.apache.airavata.xbaya.model.registrybrowser.InterpreterServiceURL;
+import org.apache.airavata.xbaya.model.registrybrowser.InterpreterServiceURLs;
+import org.apache.airavata.xbaya.model.registrybrowser.MessageBoxURL;
+import org.apache.airavata.xbaya.model.registrybrowser.MessageBoxURLs;
+import org.apache.airavata.xbaya.model.registrybrowser.OutputParameters;
+import org.apache.airavata.xbaya.model.registrybrowser.ServiceDescriptions;
+import org.apache.airavata.xbaya.model.registrybrowser.NodeParameter;
+import org.apache.airavata.xbaya.model.registrybrowser.ServiceParameters;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflow;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowExperiment;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowExperiments;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowNodeElement;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowTemplate;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowTemplates;
+
+public class AiravataTreeNodeFactory {
+ public static TreeNode getTreeNode(Object o,TreeNode parent){
+ if (o instanceof XBayaEngine){
+ return new RegistryNode((XBayaEngine)o,parent);
+ }else if (o instanceof AiravataConfigurations){
+ return new AiravataConfigurationsNode((AiravataConfigurations)o,parent);
+// }else if (o instanceof GFacURLs){
+// return new GFacURLsNode((GFacURLs)o,parent);
+ }else if (o instanceof GFacURL){
+ return new GFacURLNode((GFacURL)o,parent);
+ }else if (o instanceof InterpreterServiceURLs){
+ return new InterpreterServiceURLsNode((InterpreterServiceURLs)o,parent);
+ }else if (o instanceof InterpreterServiceURL){
+ return new InterpreterServiceURLNode((InterpreterServiceURL)o,parent);
+ }else if (o instanceof MessageBoxURLs){
+ return new MessageBoxURLsNode((MessageBoxURLs)o,parent);
+ }else if (o instanceof MessageBoxURL){
+ return new MessageBoxURLNode((MessageBoxURL)o,parent);
+ }else if (o instanceof EventingServiceURLs){
+ return new EventingServiceURLsNode((EventingServiceURLs)o,parent);
+ }else if (o instanceof EventingServiceURL){
+ return new EventingServiceURLNode((EventingServiceURL)o,parent);
+ }else if (o instanceof HostDescriptions){
+ return new HostDescriptionsNode((HostDescriptions)o,parent);
+ }else if (o instanceof HostDescription){
+ return new HostDescriptionNode((HostDescription)o,parent);
+ }else if (o instanceof ServiceDescriptions){
+ return new ServiceDescriptionsNode((ServiceDescriptions)o,parent);
+ }else if (o instanceof ServiceDescription){
+ return new ServiceDescriptionNode((ServiceDescription)o,parent);
+ }else if (o instanceof ApplicationDeploymentDescriptions){
+ return new ApplicationDeploymentDescriptionsNode((ApplicationDeploymentDescriptions)o,parent);
+ }else if (o instanceof ApplicationDeploymentDescriptionWrap){
+ return new ApplicationDeploymentDescriptionNode((ApplicationDeploymentDescriptionWrap)o,parent);
+ }else if (o instanceof XBayaWorkflowTemplates){
+ return new XBayaWorkflowTemplatesNode((XBayaWorkflowTemplates)o,parent);
+ }else if (o instanceof XBayaWorkflowTemplate){
+ return new XBayaWorkflowTemplateNode((XBayaWorkflowTemplate)o,parent);
+ }else if (o instanceof NodeParameter){
+ return new ParameterNode((NodeParameter)o,parent);
+ }else if (o instanceof InputParameters){
+ return new InputParametersNode((InputParameters)o,parent);
+ }else if (o instanceof OutputParameters){
+ return new OutputParametersNode((OutputParameters)o,parent);
+ }else if (o instanceof ServiceParameters){
+ return new ParametersNode((ServiceParameters)o,parent);
+ }else if (o instanceof XBayaWorkflowExperiments){
+ return new XBayaWorkflowExperimentsNode((XBayaWorkflowExperiments)o,parent);
+ }else if (o instanceof XBayaWorkflowExperiment){
+ return new XBayaWorkflowExperimentNode((XBayaWorkflowExperiment)o,parent);
+ }else if (o instanceof XBayaWorkflow){
+ return new XBayaWorkflowNode((XBayaWorkflow)o,parent);
+ }else if (o instanceof XBayaWorkflowNodeElement){
+ return new XBayaWorkflowNodeElementNode((XBayaWorkflowNodeElement)o,parent);
+ }else{
+ return new DefaultMutableTreeNode(o);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java
new file mode 100644
index 0000000..8a3d82a
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java
@@ -0,0 +1,131 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.xbaya.model.registrybrowser.ApplicationDeploymentDescriptionWrap;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.DeleteAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.EditAction;
+import org.apache.airavata.xbaya.ui.dialogs.descriptors.ApplicationDescriptionDialog;
+
+public class ApplicationDeploymentDescriptionNode extends AbstractAiravataTreeNode {
+ private ApplicationDeploymentDescriptionWrap applicationDeploymentDescriptionWrap;
+
+ public ApplicationDeploymentDescriptionNode(
+ ApplicationDeploymentDescriptionWrap applicationDeploymentDescriptionWrap, TreeNode parent) {
+ super(parent);
+ setApplicationDeploymentDescriptionWrap(applicationDeploymentDescriptionWrap);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getApplicationDeploymentDescriptionWrap().getDescription().getType().getApplicationName().getStringValue();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.APPLICATION_ICON;
+ }
+
+ public ApplicationDeploymentDescriptionWrap getApplicationDeploymentDescriptionWrap() {
+ return applicationDeploymentDescriptionWrap;
+ }
+
+ public void setApplicationDeploymentDescriptionWrap(
+ ApplicationDeploymentDescriptionWrap applicationDeploymentDescriptionWrap) {
+ this.applicationDeploymentDescriptionWrap = applicationDeploymentDescriptionWrap;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(DeleteAction.ID);
+ }
+
+// @Override
+// public String getDefaultAction() {
+// return EditAction.ID;
+// }
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(DeleteAction.ID)) {
+ return deleteApplicationDescription(tree);
+ } else if (action.equals(EditAction.ID)) {
+ return editDescriptor(tree);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ private boolean editDescriptor(JTree tree) {
+ ApplicationDescriptionDialog applicationDescriptionDialog = new ApplicationDescriptionDialog(getXBayaEngine(),false,getApplicationDeploymentDescriptionWrap().getDescription(),getApplicationDeploymentDescriptionWrap().getHost(),getApplicationDeploymentDescriptionWrap().getService());
+ applicationDescriptionDialog.open();
+ if (applicationDescriptionDialog.isApplicationDescCreated()) {
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ return true;
+ }
+
+ private boolean deleteApplicationDescription(JTree tree) throws AiravataAPIInvocationException {
+ if (askQuestion("Application description",
+ "Are you sure that you want to remove the application description \""
+ + getApplicationDeploymentDescriptionWrap().getDescription().getType().getApplicationName().getStringValue() + "\"?")) {
+ getRegistry().getApplicationManager().deleteApplicationDescription(getApplicationDeploymentDescriptionWrap().getService(),
+ getApplicationDeploymentDescriptionWrap().getHost(),
+ getApplicationDeploymentDescriptionWrap().getDescription().getType().getApplicationName().getStringValue());
+ ((AbstractAiravataTreeNode) getParent()).refresh();
+ reloadTreeNode(tree, getParent());
+ }
+ return true;
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(DeleteAction.ID)) {
+ return "Remove";
+ } else if (action.getID().equals(EditAction.ID)) {
+ return "View/Edit";
+ }
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionsNode.java
new file mode 100644
index 0000000..5d58fe9
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionsNode.java
@@ -0,0 +1,139 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.AiravataAPI;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.registry.api.exception.RegistryException;
+//import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.xbaya.model.registrybrowser.ApplicationDeploymentDescriptionWrap;
+import org.apache.airavata.xbaya.model.registrybrowser.ApplicationDeploymentDescriptions;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.AddAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.DeleteAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+import org.apache.airavata.xbaya.ui.dialogs.descriptors.ApplicationDescriptionDialog;
+
+public class ApplicationDeploymentDescriptionsNode extends AbstractAiravataTreeNode {
+ private ApplicationDeploymentDescriptions applicationDeploymentDescriptions;
+
+ public ApplicationDeploymentDescriptionsNode(ApplicationDeploymentDescriptions applicationDeploymentDescriptions,
+ TreeNode parent) {
+ super(parent);
+ setApplicationDeploymentDescriptions(applicationDeploymentDescriptions);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ try {
+ return getTreeNodeList(getApplicationDeploymentDescriptions().getDescriptions().toArray(), this);
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ return emptyList();
+ } catch (RegistryException e) {
+ e.printStackTrace();
+ return emptyList();
+ }
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return "Deployments";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.APPLICATIONS_ICON;
+ }
+
+ public ApplicationDeploymentDescriptions getApplicationDeploymentDescriptions() {
+ return applicationDeploymentDescriptions;
+ }
+
+ public void setApplicationDeploymentDescriptions(ApplicationDeploymentDescriptions applicationDeploymentDescriptions) {
+ this.applicationDeploymentDescriptions = applicationDeploymentDescriptions;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(RefreshAction.ID, DeleteAction.ID);
+ }
+
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(DeleteAction.ID)) {
+ deleteApplicationDescription(tree);
+ return true;
+ } else if (action.equals(AddAction.ID)) {
+ ApplicationDescriptionDialog applicationDescriptionDialog = new ApplicationDescriptionDialog(getXBayaEngine());
+ applicationDescriptionDialog.open();
+ if (applicationDescriptionDialog.isApplicationDescCreated()) {
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ return true;
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ private void deleteApplicationDescription(JTree tree) throws Exception {
+ if (askQuestion("Application descriptions",
+ "Are you sure that you want to remove all application descriptions in this registry?")) {
+ AiravataAPI airavataAPI = getRegistry();
+ List<ApplicationDeploymentDescriptionWrap> descriptions = getApplicationDeploymentDescriptions()
+ .getDescriptions();
+ for (ApplicationDeploymentDescriptionWrap descriptionWrap : descriptions) {
+ airavataAPI.getApplicationManager().removeApplicationDescriptor(descriptionWrap.getService(), descriptionWrap.getHost(),
+ descriptionWrap.getDescription().getType().getApplicationName().getStringValue());
+ }
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(DeleteAction.ID)) {
+ return "Remove all applications";
+ } else if (action.getID().equals(AddAction.ID)) {
+ return "New application...";
+ }
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLNode.java
new file mode 100644
index 0000000..f762efe
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLNode.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.EventingServiceURL;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.CopyAction;
+
+public class EventingServiceURLNode extends AbstractAiravataTreeNode {
+ private EventingServiceURL eventingServiceURL;
+
+ public EventingServiceURLNode(EventingServiceURL eventingServiceURL, TreeNode parent) {
+ super(parent);
+ setEventingServiceURL(eventingServiceURL);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getEventingServiceURL().getEventingServiceURL().toString();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URL_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(CopyAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(CopyAction.ID)) {
+ return "Copy to clipboard";
+ }
+ return null;
+ }
+
+ @Override
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(CopyAction.ID)) {
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(getEventingServiceURL().getEventingServiceURL().toString()), null);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public EventingServiceURL getEventingServiceURL() {
+ return eventingServiceURL;
+ }
+
+ public void setEventingServiceURL(EventingServiceURL eventingServiceURL) {
+ this.eventingServiceURL = eventingServiceURL;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLsNode.java
new file mode 100644
index 0000000..336e817
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/EventingServiceURLsNode.java
@@ -0,0 +1,91 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.xbaya.model.registrybrowser.EventingServiceURLs;
+import org.apache.airavata.xbaya.model.registrybrowser.InterpreterServiceURLs;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+
+public class EventingServiceURLsNode extends AbstractAiravataTreeNode {
+ private EventingServiceURLs eventingServiceURLs;
+
+ public EventingServiceURLsNode(EventingServiceURLs eventingServiceURLs, TreeNode parent) {
+ super(parent);
+ setEventingServiceURLs(eventingServiceURLs);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ try {
+ return getTreeNodeList(getEventingServiceURLs().getURLS().toArray(), this);
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return "Eventing Services";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URLS_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(RefreshAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public EventingServiceURLs getEventingServiceURLs() {
+ return eventingServiceURLs;
+ }
+
+ public void setEventingServiceURLs(EventingServiceURLs eventingServiceURLs) {
+ this.eventingServiceURLs = eventingServiceURLs;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLNode.java
new file mode 100644
index 0000000..4270c29
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLNode.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.GFacURL;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.CopyAction;
+
+public class GFacURLNode extends AbstractAiravataTreeNode {
+ private GFacURL gfacURL;
+
+ public GFacURLNode(GFacURL gfacURL, TreeNode parent) {
+ super(parent);
+ setGfacURL(gfacURL);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getGfacURL().getGfacURL().toString();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URL_ICON;
+ }
+
+ public GFacURL getGfacURL() {
+ return gfacURL;
+ }
+
+ public void setGfacURL(GFacURL gfacURL) {
+ this.gfacURL = gfacURL;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(CopyAction.ID);
+ }
+
+ @Override
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(CopyAction.ID)) {
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(getGfacURL().getGfacURL().toString()), null);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(CopyAction.ID)) {
+ return "Copy to clipboard";
+ }
+ return null;
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLsNode.java
new file mode 100644
index 0000000..97b18c7
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/GFacURLsNode.java
@@ -0,0 +1,91 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.xbaya.model.registrybrowser.GFacURLs;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+
+public class GFacURLsNode{
+// extends AbstractAiravataTreeNode {
+// private GFacURLs gfacURLs;
+//
+// public GFacURLsNode(GFacURLs gfacURLs, TreeNode parent) {
+// super(parent);
+// setGfacURLs(gfacURLs);
+// }
+//
+// @Override
+// protected List<TreeNode> getChildren() {
+// try {
+// return getTreeNodeList(getGfacURLs().getURLS().toArray(), this);
+// } catch (AiravataAPIInvocationException e) {
+// e.printStackTrace();
+// }
+// return null;
+// }
+//
+// @Override
+// public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+// return "GFac Locations";
+// }
+//
+// @Override
+// public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+// return JCRBrowserIcons.GFAC_URLS_ICON;
+// }
+//
+// public GFacURLs getGfacURLs() {
+// return gfacURLs;
+// }
+//
+// public void setGfacURLs(GFacURLs gfacURLs) {
+// this.gfacURLs = gfacURLs;
+// }
+//
+// @Override
+// public List<String> getSupportedActions() {
+// return Arrays.asList(RefreshAction.ID);
+// }
+//
+// @Override
+// public String getActionCaption(AbstractBrowserActionItem action) {
+// return action.getDefaultCaption();
+// }
+//
+// @Override
+// public Icon getActionIcon(AbstractBrowserActionItem action) {
+// return null;
+// }
+//
+// @Override
+// public String getActionDescription(AbstractBrowserActionItem action) {
+// return null;
+// }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionNode.java
new file mode 100644
index 0000000..2fba319
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionNode.java
@@ -0,0 +1,127 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.DeleteAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.EditAction;
+import org.apache.airavata.xbaya.ui.dialogs.descriptors.HostDescriptionDialog;
+
+public class HostDescriptionNode extends AbstractAiravataTreeNode {
+ private HostDescription hostDescription;
+
+ public HostDescriptionNode(HostDescription hostDescription, TreeNode parent) {
+ super(parent);
+ setHostDescription(hostDescription);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getHostDescription().getType().getHostName();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.HOST_ICON;
+ }
+
+ public HostDescription getHostDescription() {
+ return hostDescription;
+ }
+
+ public void setHostDescription(HostDescription hostDescription) {
+ this.hostDescription = hostDescription;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(EditAction.ID, DeleteAction.ID);
+ }
+
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(DeleteAction.ID)) {
+ return deleteHostDescription(tree);
+ } else if (action.equals(EditAction.ID)) {
+ return editHostDescription(tree);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public String getDefaultAction() {
+ return EditAction.ID;
+ }
+
+ private boolean editHostDescription(JTree tree) {
+ HostDescriptionDialog hostDescriptionDialog = new HostDescriptionDialog(getXBayaEngine().getConfiguration().getAiravataAPI(),false,getHostDescription(), null);
+ hostDescriptionDialog.open();
+ if (hostDescriptionDialog.isHostCreated()) {
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ return true;
+ }
+
+ private boolean deleteHostDescription(JTree tree) throws AiravataAPIInvocationException {
+ if (askQuestion("Host description", "Are you sure that you want to remove the host description \""
+ + getHostDescription().getType().getHostName() + "\"?")) {
+ getRegistry().getApplicationManager().deleteHostDescription(getHostDescription().getType().getHostName());
+ ((AbstractAiravataTreeNode) getParent()).refresh();
+ reloadTreeNode(tree, getParent());
+ }
+ return true;
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(DeleteAction.ID)) {
+ return "Remove";
+ } else if (action.getID().equals(EditAction.ID)) {
+ return "View/Edit";
+ }
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionsNode.java
new file mode 100644
index 0000000..525c15b
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/HostDescriptionsNode.java
@@ -0,0 +1,131 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.AiravataAPI;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.xbaya.model.registrybrowser.HostDescriptions;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.AddAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.DeleteAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+import org.apache.airavata.xbaya.ui.dialogs.descriptors.HostDescriptionDialog;
+//import org.apache.airavata.registry.api.AiravataRegistry2;
+
+public class HostDescriptionsNode extends AbstractAiravataTreeNode {
+ private HostDescriptions hostDescriptions;
+
+ public HostDescriptionsNode(HostDescriptions hostDescriptions, TreeNode parent) {
+ super(parent);
+ setHostDescriptions(hostDescriptions);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ try {
+ return getTreeNodeList(getHostDescriptions().getDescriptions().toArray(), this);
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ return emptyList();
+ }
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return "Hosts";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.HOSTS_ICON;
+ }
+
+ public HostDescriptions getHostDescriptions() {
+ return hostDescriptions;
+ }
+
+ public void setHostDescriptions(HostDescriptions hostDescriptions) {
+ this.hostDescriptions = hostDescriptions;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(AddAction.ID, RefreshAction.ID, DeleteAction.ID);
+ }
+
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(DeleteAction.ID)) {
+ deleteHostDescription(tree);
+ return true;
+ } else if (action.equals(AddAction.ID)) {
+ HostDescriptionDialog hostDescriptionDialog = new HostDescriptionDialog(getXBayaEngine().getConfiguration().getAiravataAPI(), null);
+ hostDescriptionDialog.open();
+ if (hostDescriptionDialog.isHostCreated()) {
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ return true;
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ private void deleteHostDescription(JTree tree) throws Exception {
+ if (askQuestion("Host descriptions",
+ "Are you sure that you want to remove all host descriptions in this registry?")) {
+ AiravataAPI registry = getRegistry();
+ List<HostDescription> descriptions = getHostDescriptions().getDescriptions();
+ for (HostDescription descriptionWrap : descriptions) {
+ registry.getApplicationManager().removeHostDescriptor(descriptionWrap.getType().getHostName());
+ }
+ refresh();
+ reloadTreeNode(tree, this);
+ }
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(DeleteAction.ID)) {
+ return "Remove all hosts";
+ } else if (action.getID().equals(AddAction.ID)) {
+ return "New host...";
+ }
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java
new file mode 100644
index 0000000..4116fcb
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java
@@ -0,0 +1,46 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.InputParameters;
+
+public class InputParametersNode extends ParametersNode {
+
+ public InputParametersNode(InputParameters parameters, TreeNode parent) {
+ super(parameters, parent);
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return "Input";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return JCRBrowserIcons.INPUT_PARAMETERS_ICON;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLNode.java
new file mode 100644
index 0000000..eb595e7
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLNode.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.InterpreterServiceURL;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.CopyAction;
+
+public class InterpreterServiceURLNode extends AbstractAiravataTreeNode {
+ private InterpreterServiceURL interpreterServiceURL;
+
+ public InterpreterServiceURLNode(InterpreterServiceURL interpreterServiceURL, TreeNode parent) {
+ super(parent);
+ setInterpreterServiceURL(interpreterServiceURL);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getInterpreterServiceURL().getInterpreterServiceURL().toString();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URL_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(CopyAction.ID);
+ }
+
+ @Override
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(CopyAction.ID)) {
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(getInterpreterServiceURL().getInterpreterServiceURL().toString()), null);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(CopyAction.ID)) {
+ return "Copy to clipboard";
+ }
+ return null;
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public InterpreterServiceURL getInterpreterServiceURL() {
+ return interpreterServiceURL;
+ }
+
+ public void setInterpreterServiceURL(InterpreterServiceURL interpreterServiceURL) {
+ this.interpreterServiceURL = interpreterServiceURL;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLsNode.java
new file mode 100644
index 0000000..1835dde
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InterpreterServiceURLsNode.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.xbaya.model.registrybrowser.InterpreterServiceURLs;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+
+public class InterpreterServiceURLsNode extends AbstractAiravataTreeNode {
+ private InterpreterServiceURLs interpreterServiceURLs;
+
+ public InterpreterServiceURLsNode(InterpreterServiceURLs interpreterServiceURLs, TreeNode parent) {
+ super(parent);
+ setInterpreterServiceURLs(interpreterServiceURLs);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ try {
+ return getTreeNodeList(getInterpreterServiceURLs().getURLS().toArray(), this);
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return "Interpreter Servers";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URLS_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(RefreshAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public InterpreterServiceURLs getInterpreterServiceURLs() {
+ return interpreterServiceURLs;
+ }
+
+ public void setInterpreterServiceURLs(InterpreterServiceURLs interpreterServiceURLs) {
+ this.interpreterServiceURLs = interpreterServiceURLs;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/JCRBrowserIcons.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/JCRBrowserIcons.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/JCRBrowserIcons.java
new file mode 100644
index 0000000..17b7be2
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/JCRBrowserIcons.java
@@ -0,0 +1,50 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.Icon;
+
+import org.apache.airavata.common.utils.SwingUtil;
+
+public class JCRBrowserIcons {
+ public static final Icon APPLICATION_ICON=SwingUtil.createImageIcon("application.png");
+ public static final Icon APPLICATIONS_ICON=SwingUtil.createImageIcon("applications.png");
+ public static final Icon REGISTRY_ICON=SwingUtil.createImageIcon("jcr-repo.png");
+ public static final Icon AIRAVATA_CONFIG_ICON=SwingUtil.createImageIcon("airavata-config.png");
+ public static final Icon GFAC_URLS_ICON=SwingUtil.createImageIcon("gfac_urls.png");
+ public static final Icon GFAC_URL_ICON=SwingUtil.createImageIcon("gfac_url.png");
+ public static final Icon HOST_ICON=SwingUtil.createImageIcon("host.png");
+ public static final Icon HOSTS_ICON=SwingUtil.createImageIcon("hosts.png");
+ public static final Icon INPUT_PARAMETERS_ICON=SwingUtil.createImageIcon("input_para.png");
+ public static final Icon OUTPUT_PARAMETERS_ICON=SwingUtil.createImageIcon("output_para.png");
+ public static final Icon PARAMETER_ICON=SwingUtil.createImageIcon("parameter.png");
+ public static final Icon PARAMETERS_ICON=SwingUtil.createImageIcon("parameter.png");
+ public static final Icon PARAMETER_VALUE_ICON=SwingUtil.createImageIcon("parameter.png");
+ public static final Icon SERVICE_ICON=SwingUtil.createImageIcon("service.png");
+ public static final Icon SERVICES_ICON=SwingUtil.createImageIcon("services.png");
+ public static final Icon WORKFLOW_EXPERIMENT_ICON=SwingUtil.createImageIcon("experiment.png");
+ public static final Icon WORKFLOW_EXPERIMENTS_ICON=SwingUtil.createImageIcon("experiments.png");
+ public static final Icon WORKFLOW_ICON=SwingUtil.createImageIcon("workflow.png");
+ public static final Icon WORKFLOW_SERVICE_ICON=SwingUtil.createImageIcon("service.png");
+ public static final Icon WORKFLOW_TEMPLATE_ICON=SwingUtil.createImageIcon("workflow.png");
+ public static final Icon WORKFLOW_TEMPLATES_ICON=SwingUtil.createImageIcon("workflow_templates.png");
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLNode.java
new file mode 100644
index 0000000..23a9c37
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLNode.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.MessageBoxURL;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.CopyAction;
+
+public class MessageBoxURLNode extends AbstractAiravataTreeNode {
+ private MessageBoxURL messageBoxURL;
+
+ public MessageBoxURLNode(MessageBoxURL messageBoxURL, TreeNode parent) {
+ super(parent);
+ setMessageBoxURL(messageBoxURL);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return getMessageBoxURL().getMessageBoxURL().toString();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URL_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(CopyAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(CopyAction.ID)) {
+ return "Copy to clipboard";
+ }
+ return null;
+ }
+
+ @Override
+ public boolean triggerAction(JTree tree, String action) throws Exception {
+ if (action.equals(CopyAction.ID)) {
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(getMessageBoxURL().getMessageBoxURL().toString()), null);
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public MessageBoxURL getMessageBoxURL() {
+ return messageBoxURL;
+ }
+
+ public void setMessageBoxURL(MessageBoxURL messageBoxURL) {
+ this.messageBoxURL = messageBoxURL;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLsNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLsNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLsNode.java
new file mode 100644
index 0000000..5f521d3
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/MessageBoxURLsNode.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.xbaya.model.registrybrowser.MessageBoxURLs;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+
+public class MessageBoxURLsNode extends AbstractAiravataTreeNode {
+ private MessageBoxURLs messageBoxURLs;
+
+ public MessageBoxURLsNode(MessageBoxURLs messageBoxURLs, TreeNode parent) {
+ super(parent);
+ setMessageBoxURLs(messageBoxURLs);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ try {
+ return getTreeNodeList(getMessageBoxURLs().getURLS().toArray(), this);
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return "Message Boxes";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.GFAC_URLS_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(RefreshAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public MessageBoxURLs getMessageBoxURLs() {
+ return messageBoxURLs;
+ }
+
+ public void setMessageBoxURLs(MessageBoxURLs messageBoxURLs) {
+ this.messageBoxURLs = messageBoxURLs;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java
new file mode 100644
index 0000000..bed1a70
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java
@@ -0,0 +1,46 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.OutputParameters;
+
+public class OutputParametersNode extends ParametersNode {
+
+ public OutputParametersNode(OutputParameters parameters, TreeNode parent) {
+ super(parameters, parent);
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return "Output";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return JCRBrowserIcons.OUTPUT_PARAMETERS_ICON;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
new file mode 100644
index 0000000..5ce637f
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
@@ -0,0 +1,136 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.BrowserLauncher;
+import org.apache.airavata.xbaya.model.registrybrowser.NodeParameter;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.BrowserAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.CopyAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.ViewAction;
+import org.apache.airavata.xbaya.ui.dialogs.TextWindow;
+
+public class ParameterNode extends AbstractAiravataTreeNode {
+ private NodeParameter parameter;
+
+ public ParameterNode(NodeParameter parameter, TreeNode parent) {
+ super(parent);
+ setParameter(parameter);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ if (getParameter().getValue()!=null){
+ String parameterValue = getParameter().getValue().toString();
+ if (parameterValue.length()>200){
+ parameterValue=parameterValue.substring(0, 200)+"...";
+ }
+ return wrapAsHtml("<b>"+getParameter().getName()+"</b>",": ",""+parameterValue+"");
+ }else{
+ return getParameter().getName();
+ }
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return JCRBrowserIcons.PARAMETER_ICON;
+ }
+
+ @Override
+ public String getDefaultAction() {
+ return ViewAction.ID;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ try {
+ new URL(getParameter().getValue().toString());
+ return Arrays.asList(ViewAction.ID,CopyAction.ID,BrowserAction.ID);
+ } catch (MalformedURLException e) {
+ //the content is not a proper url
+ return Arrays.asList(ViewAction.ID,CopyAction.ID);
+ }
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ if (action.getID().equals(ViewAction.ID)) {
+ return "View";
+ } else if (action.getID().equals(CopyAction.ID)) {
+ return "Copy to clipboard";
+ } else if (action.getID().equals(BrowserAction.ID)) {
+ return "Open in web browser...";
+ }
+ return null;
+ }
+
+ public boolean triggerAction(JTree tree,String action) throws Exception{
+ String value = getParameter().getValue().toString();
+ if (action.equals(ViewAction.ID)) {
+ TextWindow textWindow = new TextWindow(getXBayaEngine(), getParameter().getName(), value,"Parameter Content");
+ textWindow.show();
+ } else if (action.equals(CopyAction.ID)) {
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(value), null);
+ } else if (action.equals(BrowserAction.ID)) {
+ BrowserLauncher.openURL(getParameter().getValue().toString());
+ }
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public NodeParameter getParameter() {
+ return parameter;
+ }
+
+ public void setParameter(NodeParameter parameter) {
+ this.parameter = parameter;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java
new file mode 100644
index 0000000..38a7d16
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.schemas.gfac.Parameter;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+
+public class ParameterValueNode extends AbstractAiravataTreeNode {
+ private Parameter parameter;
+
+ public ParameterValueNode(Parameter parameter, TreeNode parent) {
+ super(parent);
+ setParameter(parameter);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return emptyList();
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return getParameter().getParameterName();
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return JCRBrowserIcons.PARAMETER_VALUE_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList();
+ }
+
+ public boolean triggerAction(JTree tree,String action) throws Exception{
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public Parameter getParameter() {
+ return parameter;
+ }
+
+ public void setParameter(Parameter parameter) {
+ this.parameter = parameter;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java
new file mode 100644
index 0000000..33e409a
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.xbaya.model.registrybrowser.ServiceParameters;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+
+public class ParametersNode extends AbstractAiravataTreeNode {
+ private ServiceParameters parametersList;
+ public ParametersNode(ServiceParameters parameters,TreeNode parent) {
+ super(parent);
+ setParametersList(parameters);
+ }
+
+ @Override
+ protected List<TreeNode> getChildren() {
+ return getTreeNodeList(getParametersList().getParameters().toArray(), this);
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return "Parameters";
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+ boolean hasFocus) {
+ return JCRBrowserIcons.PARAMETERS_ICON;
+ }
+
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList();
+ }
+
+ public boolean triggerAction(JTree tree,String action) throws Exception{
+ return super.triggerAction(tree, action);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public ServiceParameters getParametersList() {
+ return parametersList;
+ }
+
+ public void setParametersList(ServiceParameters parametersList) {
+ this.parametersList = parametersList;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java
new file mode 100644
index 0000000..09af7c8
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java
@@ -0,0 +1,130 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.client.api.AiravataAPI;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+//import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.xbaya.XBayaEngine;
+import org.apache.airavata.xbaya.model.registrybrowser.AiravataConfigurations;
+import org.apache.airavata.xbaya.model.registrybrowser.HostDescriptions;
+import org.apache.airavata.xbaya.model.registrybrowser.ServiceDescriptions;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowExperiments;
+import org.apache.airavata.xbaya.model.registrybrowser.XBayaWorkflowTemplates;
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+
+public class RegistryNode extends AbstractAiravataTreeNode {
+ private AiravataAPI registry;
+ private XBayaEngine engine;
+
+ public RegistryNode(XBayaEngine engine, TreeNode parent) {
+ super(parent);
+ setRegistry(engine.getConfiguration().getAiravataAPI());
+ this.engine=engine;
+ }
+
+ protected List<TreeNode> getChildren() {
+ List<Object> children = new ArrayList<Object>();
+ AiravataConfigurations airavataConfigurations = new AiravataConfigurations(getRegistry());
+ children.add(airavataConfigurations);
+ HostDescriptions hostDescriptions = new HostDescriptions(getRegistry());
+ children.add(hostDescriptions);
+ ServiceDescriptions serviceDescriptions = new ServiceDescriptions(getRegistry());
+ children.add(serviceDescriptions);
+// ApplicationDeploymentDescriptions applicationDeploymentDescriptions = new ApplicationDeploymentDescriptions(
+// getRegistry());
+// children.add(applicationDeploymentDescriptions);
+ XBayaWorkflowTemplates xBayaWorkflows = new XBayaWorkflowTemplates(getRegistry());
+ children.add(xBayaWorkflows);
+ XBayaWorkflowExperiments xBayaWorkflowExperiments = new XBayaWorkflowExperiments(getRegistry());
+ children.add(xBayaWorkflowExperiments);
+ return getTreeNodeList(children.toArray(), this);
+ }
+
+ public AiravataAPI getRegistry() {
+ return registry;
+ }
+
+ public void setRegistry(AiravataAPI registry) {
+ this.registry = registry;
+ }
+
+ @Override
+ public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ try {
+ return getRegistry().getAiravataManager().getGateway().getGatewayName() + " - " + getRegistry().getAiravataManager().getUser().getUserName();
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+ return JCRBrowserIcons.REGISTRY_ICON;
+ }
+
+ // @Override
+ // public void refresh() {
+ // List<TreeNode> children = getChildren();
+ // for (TreeNode node : children) {
+ // if (node instanceof AbstractAiravataTreeNode){
+ // ((AbstractAiravataTreeNode)node).refresh();
+ // }
+ // }
+ // }
+ @Override
+ public List<String> getSupportedActions() {
+ return Arrays.asList(RefreshAction.ID);
+ }
+
+ @Override
+ public String getActionCaption(AbstractBrowserActionItem action) {
+ return action.getDefaultCaption();
+ }
+
+ @Override
+ public Icon getActionIcon(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ @Override
+ public String getActionDescription(AbstractBrowserActionItem action) {
+ return null;
+ }
+
+ public XBayaEngine getEngine() {
+ return engine;
+ }
+
+ public void setEngine(XBayaEngine engine) {
+ this.engine = engine;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/9c47eec8/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryTreeCellRenderer.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryTreeCellRenderer.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryTreeCellRenderer.java
new file mode 100644
index 0000000..fe3baac
--- /dev/null
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryTreeCellRenderer.java
@@ -0,0 +1,43 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.awt.Component;
+
+import javax.swing.JTree;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.TreeCellRenderer;
+
+public class RegistryTreeCellRenderer implements TreeCellRenderer {
+
+ @Override
+ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
+ boolean leaf, int row, boolean hasFocus) {
+ if (value instanceof AbstractAiravataTreeNode) {
+ AbstractAiravataTreeNode node = (AbstractAiravataTreeNode) value;
+ return node.getNodeComponent(tree, value, selected, expanded, leaf, row, hasFocus);
+ }
+ return new DefaultTreeCellRenderer().getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row,
+ hasFocus);
+ }
+
+}