From 34a3a961e88f6fc5bd7b4219afd6633cf101317b Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 30 Nov 2012 15:33:51 +0100 Subject: Export CompositeActivityDefs into module format, include Resource elements for module XML. refs #38 --- .../lifecycle/desc/CompActDefOutcomeHandler.java | 12 ++++++- .../lifecycle/desc/ElemActDefOutcomeHandler.java | 39 ++++++++++++++-------- 2 files changed, 36 insertions(+), 15 deletions(-) (limited to 'src/main/java/com/c2kernel') diff --git a/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java b/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java index c47931f..75b3ff7 100644 --- a/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java +++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java @@ -4,7 +4,9 @@ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.BufferedWriter; import java.io.File; +import java.io.FileWriter; import javax.swing.JButton; import javax.swing.JFileChooser; @@ -225,6 +227,14 @@ public class CompActDefOutcomeHandler @Override public void export(File targetFile) throws Exception { - ElemActDefOutcomeHandler.exportAct(targetFile.getParentFile(), mCompActDef); + //Make sure module structure is present + File parentDir = targetFile.getParentFile(); + FileStringUtility.createNewDir(parentDir.getAbsolutePath()+"/CA"); + FileStringUtility.createNewDir(parentDir.getAbsolutePath()+"/EA"); + FileStringUtility.createNewDir(parentDir.getAbsolutePath()+"/OD"); + FileStringUtility.createNewDir(parentDir.getAbsolutePath()+"/SC"); + BufferedWriter imports = new BufferedWriter(new FileWriter(new File(parentDir, mCompActDef.getActName()+"Imports.xml"))); + ElemActDefOutcomeHandler.exportAct(targetFile.getParentFile(), imports, mCompActDef); + imports.close(); } } diff --git a/src/main/java/com/c2kernel/gui/lifecycle/desc/ElemActDefOutcomeHandler.java b/src/main/java/com/c2kernel/gui/lifecycle/desc/ElemActDefOutcomeHandler.java index f75632d..521b9cf 100644 --- a/src/main/java/com/c2kernel/gui/lifecycle/desc/ElemActDefOutcomeHandler.java +++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/ElemActDefOutcomeHandler.java @@ -1,5 +1,6 @@ package com.c2kernel.gui.lifecycle.desc; +import java.io.BufferedWriter; import java.io.File; import javax.swing.JOptionPane; @@ -111,48 +112,58 @@ public class ElemActDefOutcomeHandler extends VertexPropertyPanel implements Out @Override public void export(File targetFile) throws Exception { - exportAct(targetFile.getParentFile(), act); + exportAct(targetFile.getParentFile(), null, act); } - public static void exportAct(File dir, ActivityDef actDef) throws Exception { - FileStringUtility.string2File(new File(dir, actDef.getActName()+".xml"), Gateway.getMarshaller().marshall(actDef)); + public static void exportAct(File dir, BufferedWriter imports, ActivityDef actDef) throws Exception { + // Export associated schema - exportSchema((String)actDef.getProperties().get("SchemaType"), (String)actDef.getProperties().get("SchemaVersion"), dir); + exportSchema((String)actDef.getProperties().get("SchemaType"), (String)actDef.getProperties().get("SchemaVersion"), imports, new File(dir, "OD")); // Export associated script - exportScript((String)actDef.getProperties().get("ScriptName"), (String)actDef.getProperties().get("ScriptVersion"), dir); + exportScript((String)actDef.getProperties().get("ScriptName"), (String)actDef.getProperties().get("ScriptVersion"), imports, new File(dir, "SC")); //Export child act if composite if (actDef instanceof CompositeActivityDef) { CompositeActivityDef compActDef = (CompositeActivityDef)actDef; - for (int i=0; iboot/CA/"+compActDef.getActName()+".xml\n"); + } + else { + FileStringUtility.string2File(new File(new File(dir, "EA"), actDef.getActName()+".xml"), Gateway.getMarshaller().marshall(actDef)); + if (imports!=null) imports.write("boot/EA/"+actDef.getActName()+".xml\n"); } } - public static void exportScript(String name, String version, File dir) { - if (name == null || name.length()==0) return; + public static void exportScript(String name, String version, BufferedWriter imports, File dir) { + if (name == null || name.length()==0 || name.contains(":")) return; try { - FileStringUtility.string2File(new File(dir, name+"_"+version+".xml"), + FileStringUtility.string2File(new File(dir, name+".xml"), LocalObjectLoader.getScript(name, version)); + if (imports!=null) imports.write("boot/SC/"+name+".xml\n"); } catch (Exception ex) { Logger.error(ex); JOptionPane.showMessageDialog(null, "Could not export script "+name+"_"+version, "Error", JOptionPane.ERROR_MESSAGE); } } - public static void exportSchema(String name, String version, File dir) { + public static void exportSchema(String name, String version, BufferedWriter imports, File dir) { if (name == null || name.length()==0) return; try { - FileStringUtility.string2File(new File(dir, name+"_"+version+".xsd"), + FileStringUtility.string2File(new File(dir, name+".xsd"), LocalObjectLoader.getSchema(name, Integer.parseInt(version)).schema); + if (imports!=null) imports.write("boot/OD/"+name+".xsd\n"); } catch (Exception ex) { Logger.error(ex); JOptionPane.showMessageDialog(null, "Could not export schema "+name+"_"+version, "Error", JOptionPane.ERROR_MESSAGE); -- cgit v1.2.3