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 2012/07/12 23:13:26 UTC

svn commit: r1360948 - in /incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya: registrybrowser/nodes/ParameterNode.java ui/actions/registry/browser/ViewAction.java ui/dialogs/TextWindow.java ui/views/JCRBrowserPanel.java

Author: samindaw
Date: Thu Jul 12 21:13:25 2012
New Revision: 1360948

URL: http://svn.apache.org/viewvc?rev=1360948&view=rev
Log:
parameter view action

Added:
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/actions/registry/browser/ViewAction.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/TextWindow.java
Modified:
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/views/JCRBrowserPanel.java

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java?rev=1360948&r1=1360947&r2=1360948&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java Thu Jul 12 21:13:25 2012
@@ -33,6 +33,8 @@ import javax.swing.tree.TreeNode;
 import org.apache.airavata.xbaya.model.registrybrowser.ServiceParameter;
 import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
 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 ServiceParameter parameter;
@@ -63,21 +65,31 @@ public class ParameterNode extends Abstr
 		return JCRBrowserIcons.PARAMETER_ICON;
 	}
 
+	@Override
+	public String getDefaultAction() {
+		return ViewAction.ID;
+	}
+	
     @Override
     public List<String> getSupportedActions() {
-        return Arrays.asList(CopyAction.ID);
+        return Arrays.asList(ViewAction.ID,CopyAction.ID);
     }
 
     @Override
     public String getActionCaption(AbstractBrowserActionItem action) {
-    	if (action.getID().equals(CopyAction.ID)) {
-            return "Copy contents";
+    	if (action.getID().equals(ViewAction.ID)) {
+    		return "View";
+    	} else if (action.getID().equals(CopyAction.ID)) {
+            return "Copy to clipboard";
         }
     	return null;
     }
     
 	public boolean triggerAction(JTree tree,String action) throws Exception{
-		if (action.equals(CopyAction.ID)) {
+		if (action.equals(ViewAction.ID)) {
+			TextWindow textWindow = new TextWindow(getXBayaEngine(), getParameter().getName(), getParameter().getValue().toString(),"Parameter Content");
+			textWindow.show();
+		} else if (action.equals(CopyAction.ID)) {
         	Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(getParameter().getValue().toString()), null);
         }
 		return super.triggerAction(tree, action);

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/actions/registry/browser/ViewAction.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/actions/registry/browser/ViewAction.java?rev=1360948&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/actions/registry/browser/ViewAction.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/actions/registry/browser/ViewAction.java Thu Jul 12 21:13:25 2012
@@ -0,0 +1,39 @@
+/*
+ *
+ * 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.ui.actions.registry.browser;
+
+import org.apache.airavata.xbaya.ui.actions.AbstractBrowserActionItem;
+
+public class ViewAction extends AbstractBrowserActionItem {
+    public static final String ID = "action.view";
+
+    @Override
+    public String getID() {
+        return ID;
+    }
+
+    @Override
+    public String getDefaultCaption() {
+        return "View";
+    }
+
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/TextWindow.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/TextWindow.java?rev=1360948&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/TextWindow.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/TextWindow.java Thu Jul 12 21:13:25 2012
@@ -0,0 +1,141 @@
+/*
+ *
+ * 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.ui.dialogs;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.awt.event.ActionEvent;
+import java.net.URL;
+
+import javax.swing.AbstractAction;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JEditorPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkEvent.EventType;
+import javax.swing.event.HyperlinkListener;
+
+import org.apache.airavata.common.utils.BrowserLauncher;
+import org.apache.airavata.xbaya.XBayaEngine;
+import org.apache.airavata.xbaya.ui.widgets.GridPanel;
+import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import xsul5.XmlConstants;
+
+public class TextWindow {
+
+    private static final Logger logger = LoggerFactory.getLogger(TextWindow.class);
+
+    private XBayaEngine engine;
+
+    private XBayaDialog dialog;
+    
+    private String key;
+    private String value;
+    private String title;
+    
+    /**
+     * Creates the AboutWindow.
+     * 
+     * @param engine
+     */
+    public TextWindow(XBayaEngine engine, String key, String value, String title) {
+        this.engine = engine;
+        this.key=key;
+        this.value=value;
+        this.title=title;
+        init();
+    }
+
+    /**
+     * Shows the dialog.
+     */
+    public void show() {
+        this.dialog.show();
+    }
+
+    private void hide() {
+        this.dialog.hide();
+    }
+
+    @SuppressWarnings("serial")
+	private void init() {
+//        value=value+" http://localhost/";
+//        value = value.replaceAll("(?:https?|http?)://[\\w/%.-]+", "<html><body><a href='$0'>$0</a></body></html>");
+
+        final JEditorPane editorPane = new JEditorPane(XmlConstants.CONTENT_TYPE_XHTML, value);
+        editorPane.setEditable(false);
+        editorPane.setBackground(Color.WHITE);
+        editorPane.addHyperlinkListener(new HyperlinkListener() {
+            public void hyperlinkUpdate(HyperlinkEvent event) {
+                logger.debug("Event:" + event);
+                if (event.getEventType() == EventType.ACTIVATED) {
+                    URL url = event.getURL();
+                    try {
+                        BrowserLauncher.openURL(url.toString());
+                    } catch (Exception e) {
+                        TextWindow.this.engine.getGUI().getErrorWindow().error(TextWindow.this.dialog.getDialog(),
+                                e.getMessage(), e);
+                    }
+                }
+            }
+        });
+        JScrollPane pane = new JScrollPane(editorPane);
+        GridPanel gridPanel = new GridPanel();
+        XBayaTextField txtKey=new XBayaTextField(key);
+        txtKey.getTextField().setEditable(false);
+        gridPanel.add(txtKey);
+        gridPanel.add(pane);
+        gridPanel.getContentPanel().setBorder(BorderFactory.createEtchedBorder());
+        gridPanel.layout(2, 1, 1, 0);
+        
+        JPanel buttonPanel = new JPanel();
+        JButton okButton = new JButton("Close");
+        okButton.setDefaultCapable(true);
+        okButton.addActionListener(new AbstractAction() {
+            public void actionPerformed(ActionEvent e) {
+                hide();
+            }
+        });
+        JButton btnCopy = new JButton("Copy to clipboard");
+        btnCopy.addActionListener(new AbstractAction(){
+			@Override
+			public void actionPerformed(ActionEvent arg0) {
+				Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(editorPane.getText()), null);
+			}
+        	
+        });
+        buttonPanel.add(btnCopy);
+        buttonPanel.add(okButton);
+        buttonPanel.setBorder(BorderFactory.createEtchedBorder());
+        
+        this.dialog = new XBayaDialog(this.engine.getGUI(), title, gridPanel, buttonPanel);
+        dialog.getDialog().setMinimumSize(new Dimension(400, 400));
+        this.dialog.setDefaultButton(okButton);
+    }
+}
\ No newline at end of file

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/views/JCRBrowserPanel.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/views/JCRBrowserPanel.java?rev=1360948&r1=1360947&r2=1360948&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/views/JCRBrowserPanel.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/views/JCRBrowserPanel.java Thu Jul 12 21:13:25 2012
@@ -55,6 +55,7 @@ import org.apache.airavata.xbaya.ui.acti
 import org.apache.airavata.xbaya.ui.actions.registry.browser.EditAction;
 import org.apache.airavata.xbaya.ui.actions.registry.browser.ImportAction;
 import org.apache.airavata.xbaya.ui.actions.registry.browser.RefreshAction;
+import org.apache.airavata.xbaya.ui.actions.registry.browser.ViewAction;
 
 public class JCRBrowserPanel extends JPanel implements Observer {
     private List<AbstractBrowserActionItem> browserActions = new ArrayList<AbstractBrowserActionItem>();
@@ -139,6 +140,12 @@ public class JCRBrowserPanel extends JPa
                         triggerNodeAction(CopyAction.ID);
                     }
                 });
+                ViewAction actionView = new ViewAction();
+                actionView.addActionListener(new ActionListener() {
+                    public void actionPerformed(ActionEvent arg0) {
+                        triggerNodeAction(ViewAction.ID);
+                    }
+                });
                 
                 tree.addMouseListener(new MouseAdapter(){
 					@Override
@@ -149,6 +156,7 @@ public class JCRBrowserPanel extends JPa
 					}
                 });
                 browserActions.add(actionAdd);
+                browserActions.add(actionView);
                 browserActions.add(actionImport);
                 browserActions.add(actionEdit);
                 browserActions.add(actionRefresh);