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();
}