Repository: airavata Updated Branches: refs/heads/master 47e821489 -> 3b330c0d3
http://git-wip-us.apache.org/repos/asf/airavata/blob/6e42be78/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/core/generators/WorkflowFiler.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/core/generators/WorkflowFiler.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/core/generators/WorkflowFiler.java index 46c567c..167671c 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/core/generators/WorkflowFiler.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/core/generators/WorkflowFiler.java @@ -28,6 +28,8 @@ import java.util.List; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; +import com.google.gson.JsonObject; +import org.apache.airavata.common.utils.JSONUtil; import org.apache.airavata.common.utils.XMLUtil; import org.apache.airavata.workflow.model.component.ComponentException; import org.apache.airavata.workflow.model.graph.GraphException; @@ -106,8 +108,10 @@ public class WorkflowFiler { WSGraph graph = WSGraphFactory.createGraph(file); workflow = Workflow.graphToWorkflow(graph); } else { - XmlElement workflowElement = XMLUtil.loadXML(file); - workflow = new Workflow(workflowElement); + JsonObject workflowObject = JSONUtil.loadJSON(file); +// XmlElement workflowElement = XMLUtil.loadXML(file); +// workflow = new Workflow(workflowElement); + workflow = new Workflow(workflowObject); } GraphCanvas newGraphCanvas = engine.getGUI().newGraphCanvas(true); newGraphCanvas.setWorkflow(workflow); @@ -148,7 +152,7 @@ public class WorkflowFiler { File saveAsWorkflowFile = saveAsWorkflow(graphCanvas); graphCanvas.setWorkflowFile(saveAsWorkflowFile); }else{ - saveWorkflow(graphCanvas.getWorkflow(), graphCanvas.getWorkflowFile()); + saveWorkflow(graphCanvas.getWorkflowWithImage(), graphCanvas.getWorkflowFile()); } if (graphCanvas.getWorkflowFile()!=null){ graphCanvas.workflowSaved(); @@ -173,7 +177,7 @@ public class WorkflowFiler { if (!path.endsWith(XBayaConstants.WORKFLOW_FILE_SUFFIX)) { file = new File(path + XBayaConstants.WORKFLOW_FILE_SUFFIX); } - saveWorkflow(graphCanvas.getWorkflow(),file); + saveWorkflow(graphCanvas.getWorkflowWithImage(),file); return file; } return null; @@ -181,8 +185,9 @@ public class WorkflowFiler { private void saveWorkflow(Workflow workflow, File file) { try { - XMLUtil.saveXML(workflow.toXML(), file); - } catch (IOException e) { +// XMLUtil.saveXML(workflow.toXML(), file); + JSONUtil.saveJSON(workflow.toJSON(), file); + } catch (IOException e) { this.engine.getGUI().getErrorWindow().error(ErrorMessages.WRITE_FILE_ERROR, e); } catch (RuntimeException e) { this.engine.getGUI().getErrorWindow().error(ErrorMessages.GRAPH_SAVE_ERROR, e); http://git-wip-us.apache.org/repos/asf/airavata/blob/6e42be78/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/ParameterPropertyWindow.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/ParameterPropertyWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/ParameterPropertyWindow.java index 4be2ed8..a5bbdc2 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/ParameterPropertyWindow.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/ParameterPropertyWindow.java @@ -79,9 +79,9 @@ public class ParameterPropertyWindow { this.outputNodes = GraphUtil.getOutputNodes(this.graph); this.inputPanel.setParameterNodes(this.inputNodes); - this.inputPanel.setMetadata(this.graph.getInputMetadata()); +// this.inputPanel.setMetadata(this.graph.getInputMetadata()); this.outputPanel.setParameterNodes(this.outputNodes); - this.outputPanel.setMetadata(this.graph.getOutputMetadata()); +// this.outputPanel.setMetadata(this.graph.getOutputMetadata()); this.dialog.show(); } @@ -121,8 +121,8 @@ public class ParameterPropertyWindow { // Check is done at this point. - this.graph.setInputMetadata(inputMetadata); - this.graph.setOutputMetadata(outputMetadata); +// this.graph.setInputMetadata(inputMetadata); +// this.graph.setOutputMetadata(outputMetadata); // Sort the nodes in the graph in the order of sorted inputs, sorted // outputs, and the rest. http://git-wip-us.apache.org/repos/asf/airavata/blob/6e42be78/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/WorkflowPropertyWindow.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/WorkflowPropertyWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/WorkflowPropertyWindow.java index 9043d76..aad4141 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/WorkflowPropertyWindow.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/workflow/WorkflowPropertyWindow.java @@ -30,6 +30,10 @@ import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JPanel; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import org.apache.airavata.common.utils.JSONUtil; import org.apache.airavata.common.utils.StringUtil; import org.apache.airavata.common.utils.WSConstants; import org.apache.airavata.common.utils.XMLUtil; @@ -65,7 +69,7 @@ public class WorkflowPropertyWindow { /** - * @param engine + * @param */ public WorkflowPropertyWindow(XBayaGUI xbayaGUI) { this.xbayaGUI = xbayaGUI; @@ -98,14 +102,14 @@ public class WorkflowPropertyWindow { this.instanceIDField.setText(instanceID.toString()); } - XmlElement metadata = this.workflow.getMetadata(); - String metadataText; - if (metadata == null) { - metadataText = WSConstants.EMPTY_APPINFO; - } else { - metadataText = XMLUtil.xmlElementToString(metadata); - } - this.metadataTextArea.setText(metadataText); +// XmlElement metadata = this.workflow.getMetadata(); +// String metadataText; +// if (metadata == null) { +// metadataText = WSConstants.EMPTY_APPINFO; +// } else { +// metadataText = XMLUtil.xmlElementToString(metadata); +// } +// this.metadataTextArea.setText(metadataText); this.dialog.show(); } @@ -134,24 +138,29 @@ public class WorkflowPropertyWindow { String name = this.nameTextField.getText(); if (name != null && name.equals(StringUtil.convertToJavaIdentifier(name)) && (!isWorkflowNameAlreadyPresent(name))) { String description = this.descriptionTextArea.getText(); - String metadataText = this.metadataTextArea.getText(); - - XmlElement metadata; - if (metadataText.length() == 0) { - metadata = null; - } else { - try { - metadata = XMLUtil.stringToXmlElement(metadataText); - } catch (RuntimeException e) { - String warning = "The metadata is ill-formed."; - this.xbayaGUI.getErrorWindow().error(warning, e); - return; - } - } +// String metadataText = this.metadataTextArea.getText(); + +// XmlElement metadata; +// if (metadataText.length() == 0) { +// metadata = null; +// } else { +// try { +//// metadata = XMLUtil.stringToXmlElement(metadataText); +// JsonObject metadataObject = new JsonObject(); +// JsonObject appInfoObject = new JsonObject(); +// appInfoObject.add("data", JSONUtil.stringToJSONObject(metadataText)); +// +// metadata = XMLUtil.stringToXmlElement(metadataText); +// } catch (RuntimeException e) { +// String warning = "The metadata is ill-formed."; +// this.xbayaGUI.getErrorWindow().error(warning, e); +// return; +// } +// } GraphCanvas graphCanvas = this.xbayaGUI.getGraphCanvas(); graphCanvas.setNameAndDescription(name, description); - graphCanvas.getWorkflow().setMetadata(metadata); +// graphCanvas.getWorkflow().setMetadata(metadata); hide(); } else { this.nameTextField.setText(StringUtil.convertToJavaIdentifier(name)); @@ -175,8 +184,8 @@ public class WorkflowPropertyWindow { this.descriptionTextArea = new XBayaTextArea(); XBayaLabel descriptionLabel = new XBayaLabel("Description", this.descriptionTextArea); - this.metadataTextArea = new XBayaTextArea(); - XBayaLabel metadataLabel = new XBayaLabel("Metadata", this.metadataTextArea); +// this.metadataTextArea = new XBayaTextArea(); +// XBayaLabel metadataLabel = new XBayaLabel("Metadata", this.metadataTextArea); GridPanel mainPanel = new GridPanel(); mainPanel.add(nameLabel); @@ -187,9 +196,9 @@ public class WorkflowPropertyWindow { mainPanel.add(this.instanceIDField); mainPanel.add(descriptionLabel); mainPanel.add(this.descriptionTextArea); - mainPanel.add(metadataLabel); - mainPanel.add(this.metadataTextArea); - mainPanel.layout(new double[] { 0, 0, 0, 0.5, 0.5 }, new double[] { 0, 1 }); +// mainPanel.add(metadataLabel); +// mainPanel.add(this.metadataTextArea); + mainPanel.layout(new double[] { 0, 0, 0, 0.5}, new double[] { 0, 1 }); this.okButton = new JButton("OK"); this.okButton.addActionListener(new AbstractAction() { http://git-wip-us.apache.org/repos/asf/airavata/blob/6e42be78/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/graph/GraphCanvas.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/graph/GraphCanvas.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/graph/GraphCanvas.java index de960c2..fa7b8eb 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/graph/GraphCanvas.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/graph/GraphCanvas.java @@ -56,6 +56,9 @@ import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import org.apache.airavata.common.utils.JSONUtil; import org.apache.airavata.common.utils.SwingUtil; import org.apache.airavata.common.utils.XMLUtil; import org.apache.airavata.workflow.model.component.Component; @@ -149,7 +152,8 @@ public class GraphCanvas implements XBayaExecutionModeListener{ private List<Node> multipleSelectedNodes; - private XmlElement originalWorkflowElement; +// private XmlElement originalWorkflowElement; + private JsonObject originalWorkflowElementJson; boolean editable=false; /** @@ -1347,10 +1351,11 @@ public class GraphCanvas implements XBayaExecutionModeListener{ public boolean isWorkflowChanged(){ try { - if (originalWorkflowElement==null){ + if (originalWorkflowElementJson==null){ updateOriginalWorkflowElement(); } - return !XMLUtil.isEqual(originalWorkflowElement, getWorkflow().toXML()); +// return !XMLUtil.isEqual(originalWorkflowElement, getWorkflow().toXML()); + return !JSONUtil.isEqual(originalWorkflowElementJson, getWorkflow().toJSON()); } catch (Exception e) { e.printStackTrace(); return true; @@ -1363,7 +1368,8 @@ public class GraphCanvas implements XBayaExecutionModeListener{ } private void updateOriginalWorkflowElement() { - originalWorkflowElement = getWorkflow().toXML(); +// originalWorkflowElement = getWorkflow().toXML(); + originalWorkflowElementJson = getWorkflow().toJSON(); } @Override http://git-wip-us.apache.org/repos/asf/airavata/blob/6e42be78/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 2bdd42b..4b844e1 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,7 @@ <thrift.version>0.9.1</thrift.version> <mysql.connector.version>5.1.31</mysql.connector.version> <skipTests>false</skipTests> + <google.gson.version>2.3</google.gson.version> </properties> <developers> @@ -394,6 +395,12 @@ <artifactId>airavata-client-configuration</artifactId> <version>${project.version}</version> </dependency> + + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>${google.gson.version}</version> + </dependency> </dependencies> </dependencyManagement>
