diff options
Diffstat (limited to 'resources/boot/SC/LocalObjectDefCreator.xml')
| -rwxr-xr-x | resources/boot/SC/LocalObjectDefCreator.xml | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml new file mode 100755 index 0000000..c57cbc1 --- /dev/null +++ b/resources/boot/SC/LocalObjectDefCreator.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="LocalObjectDefCreator"><![CDATA[
+ importClass(Packages.com.c2kernel.utils.CastorXMLUtility);
+ importClass(Packages.com.c2kernel.utils.Resource);
+ importClass(Packages.com.c2kernel.process.Bootstrap);
+ importClass(Packages.com.c2kernel.lifecycle.CompositeActivityDef);
+ importClass(Packages.com.c2kernel.lifecycle.ActivityDef);
+
+ var job = bsf.lookupBean("job");
+ var item = bsf.lookupBean("item");
+ var agent = bsf.lookupBean("agent");
+ var errorBuffer = bsf.lookupBean("errors");
+ var type = job.getActPropString("NewType");
+ var name = job.getOutcome().getDOM().getDocumentElement().
+ getElementsByTagName("ObjectName").item(0).getFirstChild().getData();
+ var folder = job.getOutcome().getDOM().getDocumentElement().
+ getElementsByTagName("SubFolder").item(0).getFirstChild();
+ var domPath = Bootstrap.getTypeRoot(type).toString();
+ if (folder != null) domPath = domPath + "/" + folder.getData();
+
+ var params = new Array(2);
+ params[0] = name;
+
+ params[1] = domPath;
+
+ if (!(errorBuffer.getFatal())) {
+ try {
+ agent.execute(item, "CreateItemFromDescription", params);
+ } catch (e) {
+ errorBuffer.addError("Could not create "+name+": "+e.message);
+ errorBuffer.setFatal();
+ }
+ }
+
+ if (!(errorBuffer.getFatal())) { // store an outcome in the new desc
+ var newObj;
+ if (type.equals("EA") || type.equals("CA")) {
+ var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef();
+ newAct.setName(name);
+ newObj = CastorXMLUtility.marshall(newAct);
+ }
+ else
+ newObj = Resource.getTextResource("boot/"+type+"/New.xml");
+
+ var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name);
+ var newItem = agent.getItem(newPath);
+ newItem.requestAction(agent.getSystemKey(), "workflow/domain/EditDefinition", 4, newObj);
+ var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser;
+ if (tree != null) // open new item in the gui
+ tree.push(newPath);
+
+ }
+ errorBuffer;
+ ]]></script>
+</cristalscript>
|
