summaryrefslogtreecommitdiff
path: root/resources/boot/SC/LocalObjectDefCreator.xml
diff options
context:
space:
mode:
authorabranson <andrew.branson@cern.ch>2012-03-16 16:56:45 +0100
committerabranson <andrew.branson@cern.ch>2012-03-16 16:56:45 +0100
commit3c03e9fd00619e44dff85f9e523663b7323f3746 (patch)
treedba2d9aef725f68f098708d87efa5cdfe5d9d61b /resources/boot/SC/LocalObjectDefCreator.xml
parent160f610b24ee3802a109bcd32e00bfa2dde31ec2 (diff)
Comments and changelog
Diffstat (limited to 'resources/boot/SC/LocalObjectDefCreator.xml')
-rw-r--r--resources/boot/SC/LocalObjectDefCreator.xml19
1 files changed, 12 insertions, 7 deletions
diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml
index cce559e..445a517 100644
--- a/resources/boot/SC/LocalObjectDefCreator.xml
+++ b/resources/boot/SC/LocalObjectDefCreator.xml
@@ -13,18 +13,17 @@
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 name = job.getOutcome().getField("ObjectName");
+ var folder = job.getOutcome().getField("SubFolder");
+ // Find the root of that object type
var domPath = Bootstrap.getTypeRoot(type).toString();
if (folder != null) domPath = domPath + "/" + folder.getData();
var params = new Array(2);
params[0] = name;
-
params[1] = domPath;
+ // Create the new item
if (!(errorBuffer.getFatal())) {
try {
agent.execute(item, "CreateItemFromDescription", params);
@@ -34,20 +33,26 @@
}
}
- if (!(errorBuffer.getFatal())) { // store an outcome in the new desc
+ // Store a fresh one in the new item
+ if (!(errorBuffer.getFatal())) {
var newObj;
+ // Activities are serialized new instances
if (type.equals("EA") || type.equals("CA")) {
var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef();
newAct.setName(name);
newObj = CastorXMLUtility.marshall(newAct);
}
- else {
+ else {
+ // Empty schemas and scripts are stored as outcomes of the factory.
var fileType = type.equals("OD")?"Schema":"Script";
newObj = item.getObject("/ViewPoint/"+fileType+"/last").getOutcome().getData();
}
+ // Store the new object with the 'EditDefinition' activity
var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name);
var newItem = agent.getItem(newPath);
newItem.requestAction(agent.getSystemKey(), "workflow/domain/EditDefinition", 4, newObj);
+
+ // If this script is running in the Cristal GUI, open the new item.
var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser;
if (tree != null) // open new item in the gui
tree.push(newPath);