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 2011/12/19 15:19:51 UTC

svn commit: r1220760 - in /incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya: appwrapper/ registrybrowser/nodes/

Author: samindaw
Date: Mon Dec 19 14:19:50 2011
New Revision: 1220760

URL: http://svn.apache.org/viewvc?rev=1220760&view=rev
Log:
https://issues.apache.org/jira/browse/AIRAVATA-235
fixed for appl descs

Modified:
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionHostAdvancedOptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/DescriptorEditorDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java?rev=1220760&r1=1220759&r2=1220760&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java Mon Dec 19 14:19:50 2011
@@ -57,6 +57,7 @@ import org.apache.airavata.xbaya.gui.Gri
 import org.apache.airavata.xbaya.gui.XBayaLabel;
 import org.apache.airavata.xbaya.gui.XBayaLinkButton;
 import org.apache.airavata.xbaya.gui.XBayaTextField;
+import org.apache.xmlbeans.XmlException;
 
 public class ApplicationDescriptionDialog extends JDialog implements ActionListener {
     /**
@@ -80,7 +81,10 @@ public class ApplicationDescriptionDialo
 
     private XBayaEngine engine;
 	private JButton btnHostAdvanceOptions;
-
+	private boolean newDescritor;
+	private ApplicationDeploymentDescription originalDeploymentDescription;
+	private String originalHost; 
+	private String originalService;
 
     /**
      * Launch the application.
@@ -94,36 +98,49 @@ public class ApplicationDescriptionDialo
             e.printStackTrace();
         }
     }
-
+
+    public ApplicationDescriptionDialog(XBayaEngine engine) {
+    	this(engine,true,null,null,null);
+    }
     /**
      * Create the dialog.
      */
-    public ApplicationDescriptionDialog(XBayaEngine engine) {
+    public ApplicationDescriptionDialog(XBayaEngine engine, boolean newDescritor, ApplicationDeploymentDescription originalDeploymentDescription, String originalHost, String originalService) {
+    	setNewDescritor(newDescritor);
+    	setOriginalDeploymentDescription(originalDeploymentDescription);
+    	setOriginalHost(originalHost);
+    	setOriginalService(originalService);
         addWindowListener(new WindowAdapter() {
             @Override
             public void windowOpened(WindowEvent arg0) {
-                String baseName = "Application";
-                int i = 1;
-                String defaultName = baseName + i;
-                try {
-                    List<ApplicationDeploymentDescription> applicationDeploymentDescriptions = getRegistry().searchDeploymentDescription(getServiceName(), getHostName());
-                    while (true) {
-                        boolean notFound = true;
-                        for (ApplicationDeploymentDescription deploymentDescription : applicationDeploymentDescriptions) {
-                            if (deploymentDescription.getType().getApplicationName().getStringValue().equals(defaultName)) {
-                                notFound = false;
-                                break;
-                            }
-                        }
-                        if (notFound) {
-                            break;
-                        }
-                        defaultName = baseName + (++i);
-                    }
-                } catch (Exception e) {
-                }
-                txtAppName.setText(defaultName);
-                setApplicationName(txtAppName.getText());
+                if (isNewDescritor()) {
+					String baseName = "Application";
+					int i = 1;
+					String defaultName = baseName + i;
+					try {
+						List<ApplicationDeploymentDescription> applicationDeploymentDescriptions = getRegistry()
+								.searchDeploymentDescription(getServiceName(),
+										getHostName());
+						while (true) {
+							boolean notFound = true;
+							for (ApplicationDeploymentDescription deploymentDescription : applicationDeploymentDescriptions) {
+								if (deploymentDescription.getType()
+										.getApplicationName().getStringValue()
+										.equals(defaultName)) {
+									notFound = false;
+									break;
+								}
+							}
+							if (notFound) {
+								break;
+							}
+							defaultName = baseName + (++i);
+						}
+					} catch (Exception e) {
+					}
+					txtAppName.setText(defaultName);
+					setApplicationName(txtAppName.getText());
+				}
             }
         });
         this.engine=engine;
@@ -141,8 +158,12 @@ public class ApplicationDescriptionDialo
     }
 
     private void iniGUI() {
-        setTitle("New Deployment Description");
-        setBounds(100, 100, 500, 520);
+        if (isNewDescritor()) {
+			setTitle("New Deployment Description");
+		}else{
+			setTitle("Update Deployment Description: "+getOriginalDeploymentDescription().getType().getApplicationName().getStringValue());
+		}
+		setBounds(100, 100, 500, 520);
         setModal(true);
         setLocationRelativeTo(null);
         GridPanel buttonPane = new GridPanel();
@@ -154,9 +175,21 @@ public class ApplicationDescriptionDialo
 
             lblError = new JLabel("");
             lblError.setForeground(Color.RED);
-            buttonPane.add(lblError);
+            buttonPane.add(lblError);
+            if (!isNewDescritor()){
+            	JButton resetButton = new JButton("Reset");
+                resetButton.addActionListener(new ActionListener() {
+                    public void actionPerformed(ActionEvent e) {
+                        loadData();
+                    }
+                });
+                buttonPane.add(resetButton);
+            }
             {
-                okButton = new JButton("Save");
+                okButton = new JButton("Save");
+                if (!isNewDescritor()){
+                	okButton.setText("Update");
+                }
                 okButton.addActionListener(new ActionListener() {
                     public void actionPerformed(ActionEvent e) {
                         saveApplicationDescription();
@@ -394,6 +427,9 @@ public class ApplicationDescriptionDialo
         }
         setResizable(false);
         getRootPane().setDefaultButton(okButton);
+        if (!isNewDescritor()){
+        	loadData();
+        }
     }
 
     private void loadServiceDescriptions() {
@@ -406,10 +442,25 @@ public class ApplicationDescriptionDialo
             }
         } catch (Exception e) {
             setError(e.getLocalizedMessage());
-        }
+        }
         updateServiceName();
     }
-
+
+    private void loadData(){
+    	txtAppName.setText(getOriginalDeploymentDescription().getType().getApplicationName().getStringValue());
+    	setApplicationName(txtAppName.getText());
+    	txtExecPath.setText(getOriginalDeploymentDescription().getType().getExecutableLocation());
+    	setExecutablePath(txtExecPath.getText());
+    	txtTempDir.setText(getOriginalDeploymentDescription().getType().getScratchWorkingDirectory());
+    	setTempDir(txtTempDir.getText());
+
+    	cmbHostName.setSelectedItem(getOriginalHost());
+    	setHostName(cmbHostName.getSelectedItem().toString());
+    	cmbServiceName.setSelectedItem(getOriginalService());
+    	setServiceName(cmbServiceName.getSelectedItem().toString());
+    	txtAppName.setEditable(isNewDescritor());
+    }
+    
     private void loadHostDescriptions() {
         cmbHostName.removeAllItems();
         setHostName(null);
@@ -430,7 +481,15 @@ public class ApplicationDescriptionDialo
 
     public ApplicationDeploymentDescription getShellApplicationDescription() {
         if(shellApplicationDescription == null){
-            shellApplicationDescription = new ApplicationDeploymentDescription();
+            if (isNewDescritor()) {
+				shellApplicationDescription = new ApplicationDeploymentDescription();
+			}else{
+				try {
+					shellApplicationDescription=ApplicationDeploymentDescription.fromXML(getOriginalDeploymentDescription().toXML());
+				} catch (XmlException e) {
+					//shouldn't happen (hopefully)
+				}
+			}
         }
         return shellApplicationDescription;
     }
@@ -476,8 +535,17 @@ public class ApplicationDescriptionDialo
     }
 
     public void saveApplicationDescription() {
-        getRegistry().saveDeploymentDescription(getServiceName(), getHostName(), getShellApplicationDescription());
-        setApplicationDescCreated(true);
+        getRegistry().saveDeploymentDescription(getServiceName(), getHostName(), getShellApplicationDescription());
+        if (!isNewDescritor() && (!getServiceName().equals(getOriginalService()) || !getHostName().equals(getOriginalHost()))) {
+			try {
+				getRegistry().deleteDeploymentDescription(getOriginalService(),
+						getOriginalHost(),getOriginalDeploymentDescription().getType()
+						.getApplicationName().getStringValue());
+			} catch (RegistryException e) {
+				engine.getErrorWindow().error(e);
+			}
+		}
+		setApplicationDescCreated(true);
     }
 
     public boolean isApplicationDescCreated() {
@@ -519,8 +587,8 @@ public class ApplicationDescriptionDialo
         } catch (RegistryException e) {
             throw e;
         }
-        if (deploymentDescriptions.size() > 0) {
-            throw new Exception("Application descriptor with the given name already exists!!!");
+        if (deploymentDescriptions.size() > 0 && (isNewDescritor() || (!getServiceName().equals(getOriginalService()) || !getHostName().equals(getOriginalHost())))) {
+            throw new Exception("Application name already exists for the selected service & host!!!");
         }
 
         if (getExecutablePath() == null || getExecutablePath().trim().equals("")) {
@@ -609,6 +677,39 @@ public class ApplicationDescriptionDialo
 
     public void setRegistry(Registry registry) {
         this.registry = registry;
-    }
+    }
+
+	public boolean isNewDescritor() {
+		return newDescritor;
+	}
+
+	public void setNewDescritor(boolean newDescritor) {
+		this.newDescritor = newDescritor;
+	}
+
+	public ApplicationDeploymentDescription getOriginalDeploymentDescription() {
+		return originalDeploymentDescription;
+	}
+
+	public void setOriginalDeploymentDescription(
+			ApplicationDeploymentDescription originalDeploymentDescription) {
+		this.originalDeploymentDescription = originalDeploymentDescription;
+	}
+
+	public String getOriginalService() {
+		return originalService;
+	}
+
+	public void setOriginalService(String originalService) {
+		this.originalService = originalService;
+	}
+
+	public String getOriginalHost() {
+		return originalHost;
+	}
+
+	public void setOriginalHost(String originalHost) {
+		this.originalHost = originalHost;
+	}
 
 }

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionHostAdvancedOptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionHostAdvancedOptionDialog.java?rev=1220760&r1=1220759&r2=1220760&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionHostAdvancedOptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionHostAdvancedOptionDialog.java Mon Dec 19 14:19:50 2011
@@ -201,9 +201,6 @@ public class ApplicationDescriptionHostA
 		projectAccount.setProjectAccountNumber(txtProjectAccountNumber.getText());
 		projectAccount.setProjectAccountDescription(txtProjectAccountDescription.getText());
 		
-		projectAccount.setProjectAccountNumber(txtProjectAccountNumber.getText());
-		projectAccount.setProjectAccountNumber(txtProjectAccountNumber.getText());
-		
 		QueueType queueName = getQueueName();
 		queueName.setQueueName(txtQueueType.getText());
 		queueName.setQueueDescription(txtQueueName.getText());
@@ -234,31 +231,9 @@ public class ApplicationDescriptionHostA
 		txtProjectAccountNumber.setText(projectAccount.getProjectAccountNumber()==null? "":projectAccount.getProjectAccountNumber());
 		txtProjectAccountDescription.setText(projectAccount.getProjectAccountDescription()==null? "":projectAccount.getProjectAccountDescription());
 		
-//        txtWorkingDir.setText(getGramApplicationDescriptionType().getScratchWorkingDirectory());
-//        txtInputDir.setText(getGramApplicationDescriptionType().getInputDataDirectory());
-//        txtOutputDir.setText(getGramApplicationDescriptionType().getOutputDataDirectory());
-//        txtSTDIN.setText(getGramApplicationDescriptionType().getStandardInput());
-//        txtSTDOUT.setText(getGramApplicationDescriptionType().getStandardOutput());
-//        txtSTDERR.setText(getGramApplicationDescriptionType().getStandardError());
-//        tableModelChanging = true;
-//      todo handle other parameters previous sent in the Entry Now they are defined
-//        ShellApplicationDeploymentType.Env.Entry[] entry = getShellApplicationDescriptionType().getEnv().getEntryArray();
-//
-//        Map<String, String> env = null;
-//        for (int i = 0; i < entry.length; i++) {
-//            String key = getShellApplicationDescriptionType().getEnv().getEntryArray(i).getKey();
-//            String value = getShellApplicationDescriptionType().getEnv().getEntryArray(i).getValue();
-//            env.put(key, value);
-//        }
-
-//        while (defaultTableModel.getRowCount() > 0) {
-//            defaultTableModel.removeRow(0);
-//        }
-//        if (env != null) {
-//            for (String varName : env.keySet()) {
-//                defaultTableModel.addRow(new String[] { varName, env.get(varName) });
-//            }
-//        }
+		QueueType queueName = getQueueName();
+		txtQueueType.setText(queueName.getQueueName()==null?"":queueName.getQueueName());
+		txtQueueName.setText(queueName.getQueueDescription()==null?"":queueName.getQueueDescription());
     }
 
     public Registry getRegistry() {

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/DescriptorEditorDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/DescriptorEditorDialog.java?rev=1220760&r1=1220759&r2=1220760&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/DescriptorEditorDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/DescriptorEditorDialog.java Mon Dec 19 14:19:50 2011
@@ -24,6 +24,8 @@ package org.apache.airavata.xbaya.appwra
 import java.awt.Component;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -108,6 +110,14 @@ public class DescriptorEditorDialog exte
     	descriptorList.setCellRenderer(new DescriptorListCellRenderer(descriptorType));
     	JScrollPane pane = new JScrollPane(descriptorList);
     	
+    	descriptorList.addMouseListener(new MouseAdapter(){
+    		@Override
+    		public void mouseClicked(MouseEvent e) {
+    			if (e.getClickCount()==2){
+    				editDescriptor();
+    			}
+    		}
+    	});
     	GridPanel infoPanel=new GridPanel();
         infoPanel.add(pane);
         infoPanel.getSwingComponent().setBorder(BorderFactory.createEtchedBorder());
@@ -182,9 +192,19 @@ public class DescriptorEditorDialog exte
 	    		ServiceDescription d = (ServiceDescription) getSelected();
 	    		ServiceDescriptionDialog serviceDescriptionDialog = new ServiceDescriptionDialog(getRegistry(),false,d);
 	    		serviceDescriptionDialog.open();
+	    		if (serviceDescriptionDialog.isServiceCreated()) {
+					loadDescriptors();
+				}
 	    		break;
 	    	case APPLICATION:
-	    		break;
+	    		ApplicationDeploymentDescription a = (ApplicationDeploymentDescription) getSelected();
+	    		String[] s = dlist.get(a).split("\\$");
+	    		ApplicationDescriptionDialog aDescriptionDialog = new ApplicationDescriptionDialog(engine,false,a,s[1],s[0]);
+	    		aDescriptionDialog.open();
+			if (aDescriptionDialog.isApplicationDescCreated()) {
+				loadDescriptors();
+			}
+			break;
     	}
 	}
 
@@ -259,7 +279,7 @@ public class DescriptorEditorDialog exte
 	    	    		break;
 	    	    	case APPLICATION:
 	    	    		ApplicationDeploymentDescription a = (ApplicationDeploymentDescription) getSelected();
-	    	    		String[] s = dlist.get(a).split("$");
+	    	    		String[] s = dlist.get(a).split("\\$");
 	    	        	getRegistry().deleteDeploymentDescription(s[0], s[1], a.getType().getApplicationName().getStringValue());
 	    	    		break;
             	}
@@ -272,7 +292,7 @@ public class DescriptorEditorDialog exte
     }
     
     private void loadDescriptors() {
-    	descriptorList.removeAll();
+    	((DefaultListModel)descriptorList.getModel()).removeAllElements();
     	try {
     		List<?> descriptors=null;
 			switch (descriptorType){

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java?rev=1220760&r1=1220759&r2=1220760&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java Mon Dec 19 14:19:50 2011
@@ -328,9 +328,7 @@ public class ServiceDescriptionDialog ex
     	txtServiceName.setText(getOrginalServiceDescription().getType().getName());
 		setServiceName(txtServiceName.getText());
 
-    	if (!isNewDescription()){
-    		txtServiceName.setEditable(false);
-    	}
+		txtServiceName.setEditable(isNewDescription());
     	ignoreTableChanges=true;
     	while(defaultTableModel.getRowCount()>0){
     		defaultTableModel.removeRow(0);

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java?rev=1220760&r1=1220759&r2=1220760&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ApplicationDeploymentDescriptionNode.java Mon Dec 19 14:19:50 2011
@@ -25,11 +25,11 @@ import java.util.Arrays;
 import java.util.List;
 
 import javax.swing.Icon;
-import javax.swing.JOptionPane;
 import javax.swing.JTree;
 import javax.swing.tree.TreeNode;
 
 import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.xbaya.appwrapper.ApplicationDescriptionDialog;
 import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
 import org.apache.airavata.xbaya.registrybrowser.menu.DeleteAction;
 import org.apache.airavata.xbaya.registrybrowser.menu.EditAction;
@@ -73,18 +73,30 @@ public class ApplicationDeploymentDescri
         return Arrays.asList(EditAction.ID, DeleteAction.ID);
     }
 
+    @Override
+    public String getDefaultAction() {
+    	return EditAction.ID;
+    }
     public boolean triggerAction(JTree tree, String action) throws Exception {
         if (action.equals(DeleteAction.ID)) {
-            deleteApplicationDescription(tree);
-            return true;
+        	return deleteApplicationDescription(tree);
         } else if (action.equals(EditAction.ID)) {
-            JOptionPane.showMessageDialog(null, "TODO");
-            return true;
+        	return editDescriptor(tree);
         }
         return super.triggerAction(tree, action);
     }
 
-    private void deleteApplicationDescription(JTree tree) throws RegistryException {
+	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 RegistryException {
         if (askQuestion("Application description",
                 "Are you sure that you want to remove the application description \""
                         + getApplicationDeploymentDescriptionWrap().getDescription().getType().getApplicationName().getStringValue() + "\"?")) {
@@ -94,6 +106,7 @@ public class ApplicationDeploymentDescri
             ((AbstractAiravataTreeNode) getParent()).refresh();
             reloadTreeNode(tree, getParent());
         }
+        return true;
     }
 
     @Override
@@ -101,7 +114,7 @@ public class ApplicationDeploymentDescri
         if (action.getID().equals(DeleteAction.ID)) {
             return "Remove";
         } else if (action.getID().equals(EditAction.ID)) {
-            return "Edit";
+            return "View/Edit";
         }
         return action.getDefaultCaption();
     }