mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
some minor cleanup to code in how widgets are loaded.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3943 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -251,18 +251,8 @@ dojo.declare("alfresco.xforms.TextArea",
|
|||||||
this.domNode.setAttribute("style", "height: 200px; border: solid 1px black;");
|
this.domNode.setAttribute("style", "height: 200px; border: solid 1px black;");
|
||||||
this.domNode.setAttribute("id", this.id);
|
this.domNode.setAttribute("id", this.id);
|
||||||
this.domNode.innerHTML = this.getInitialValue() || "";
|
this.domNode.innerHTML = this.getInitialValue() || "";
|
||||||
// dojo.event.connect(this.domNode, "onclick", this, this._clickHandler);
|
|
||||||
// dojo.event.connect(this.domNode, "onblur", this, this._blurHandler);
|
|
||||||
tinyMCE.addMCEControl(this.domNode, this.id);
|
tinyMCE.addMCEControl(this.domNode, this.id);
|
||||||
},
|
},
|
||||||
_clickHandler: function(event)
|
|
||||||
{
|
|
||||||
|
|
||||||
},
|
|
||||||
_blurHandler: function(event)
|
|
||||||
{
|
|
||||||
alert('blurry');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
dojo.declare("alfresco.xforms.Select1",
|
dojo.declare("alfresco.xforms.Select1",
|
||||||
@@ -735,32 +725,32 @@ dojo.declare("alfresco.xforms.Repeat",
|
|||||||
this._updateDisplay();
|
this._updateDisplay();
|
||||||
},
|
},
|
||||||
handlePrototypeCloned: function(prototypeId)
|
handlePrototypeCloned: function(prototypeId)
|
||||||
{
|
{
|
||||||
dojo.debug(this.id + ".handlePrototypeCloned("+ prototypeId +")");
|
dojo.debug(this.id + ".handlePrototypeCloned("+ prototypeId +")");
|
||||||
var chibaData = this.node.getElementsByTagName("data");
|
var chibaData = this.node.getElementsByTagName("data");
|
||||||
dojo.debug("repeat node == " +dojo.dom.innerXML(this.node));
|
dojo.debug("repeat node == " +dojo.dom.innerXML(this.node));
|
||||||
dojo.debug(chibaData + " l = " + chibaData.length);
|
dojo.debug(chibaData + " l = " + chibaData.length);
|
||||||
chibaData = chibaData[chibaData.length - 1];
|
chibaData = chibaData[chibaData.length - 1];
|
||||||
dojo.debug("chiba:data == " + dojo.dom.innerXML(chibaData));
|
dojo.debug("chiba:data == " + dojo.dom.innerXML(chibaData));
|
||||||
var prototypeToClone = dojo.dom.firstElement(chibaData);
|
var prototypeToClone = dojo.dom.firstElement(chibaData);
|
||||||
if (prototypeToClone.getAttribute("id") != prototypeId)
|
if (prototypeToClone.getAttribute("id") != prototypeId)
|
||||||
throw new Error("unable to locate " + prototypeId +
|
throw new Error("unable to locate " + prototypeId +
|
||||||
" in " + this.id);
|
" in " + this.id);
|
||||||
return prototypeToClone.cloneNode(true);
|
return prototypeToClone.cloneNode(true);
|
||||||
},
|
},
|
||||||
handleItemInserted: function(clonedPrototype, position)
|
handleItemInserted: function(clonedPrototype, position)
|
||||||
{
|
{
|
||||||
dojo.debug(this.id + ".handleItemInserted(" + clonedPrototype.nodeName +
|
dojo.debug(this.id + ".handleItemInserted(" + clonedPrototype.nodeName +
|
||||||
", " + position + ")");
|
", " + position + ")");
|
||||||
var w = create_widget(this.xform, clonedPrototype);
|
var w = this.xform.createWidget(clonedPrototype);
|
||||||
this.insertChildAt(w, position);
|
this.insertChildAt(w, position);
|
||||||
load_body(this.xform, w.node, w);
|
this.xform.loadWidgets(w.node, w);
|
||||||
},
|
},
|
||||||
handleItemDeleted: function(position)
|
handleItemDeleted: function(position)
|
||||||
{
|
{
|
||||||
dojo.debug(this.id + ".handleItemDeleted(" + position + ")");
|
dojo.debug(this.id + ".handleItemDeleted(" + position + ")");
|
||||||
this.removeChildAt(position);
|
this.removeChildAt(position);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dojo.declare("alfresco.xforms.Trigger",
|
dojo.declare("alfresco.xforms.Trigger",
|
||||||
@@ -865,12 +855,79 @@ dojo.declare("alfresco.xforms.XForm",
|
|||||||
|
|
||||||
var root = new alfresco.xforms.Group(this, alfUI);
|
var root = new alfresco.xforms.Group(this, alfUI);
|
||||||
root.render(alfUI);
|
root.render(alfUI);
|
||||||
load_body(this, this.getBody(), root);
|
this.loadWidgets(this.getBody(), root);
|
||||||
},
|
},
|
||||||
addLoadHandler: function(handler)
|
createWidget: function(node)
|
||||||
{
|
{
|
||||||
this.load_handlers.push(handler);
|
switch (node.nodeName.toLowerCase())
|
||||||
|
{
|
||||||
|
case "xforms:group":
|
||||||
|
return new alfresco.xforms.Group(this, node);
|
||||||
|
case "xforms:repeat":
|
||||||
|
return new alfresco.xforms.Repeat(this, node);
|
||||||
|
case "xforms:textarea":
|
||||||
|
return new alfresco.xforms.TextArea(this, node);
|
||||||
|
case "xforms:input":
|
||||||
|
var type = this.getType(node);
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case "date":
|
||||||
|
return new alfresco.xforms.DatePicker(this, node);
|
||||||
|
case "byte":
|
||||||
|
case "double":
|
||||||
|
case "float":
|
||||||
|
case "int":
|
||||||
|
case "integer":
|
||||||
|
case "long":
|
||||||
|
case "negativeInteger":
|
||||||
|
case "nonNegativeInteger":
|
||||||
|
case "nonPositiveInteger":
|
||||||
|
case "short":
|
||||||
|
case "unsignedByte":
|
||||||
|
case "unsignedInt":
|
||||||
|
case "unsignedLong":
|
||||||
|
case "unsignedShort":
|
||||||
|
case "positiveInteger":
|
||||||
|
return new alfresco.xforms.NumericStepper(this, node, type);
|
||||||
|
case "string":
|
||||||
|
default:
|
||||||
|
return new alfresco.xforms.TextField(this, node);
|
||||||
|
}
|
||||||
|
case "xforms:select1":
|
||||||
|
return (this.getType(node) == "boolean"
|
||||||
|
? new alfresco.xforms.Checkbox(this, node)
|
||||||
|
: new alfresco.xforms.Select1(this, node));
|
||||||
|
case "xforms:submit":
|
||||||
|
return new alfresco.xforms.Submit(this, node);
|
||||||
|
case "xforms:trigger":
|
||||||
|
return new alfresco.xforms.Trigger(this, node);
|
||||||
|
case "chiba:data":
|
||||||
|
case "xforms:label":
|
||||||
|
case "xforms:alert":
|
||||||
|
return null;
|
||||||
|
default:
|
||||||
|
throw new Error("unknown type " + node.nodeName);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
loadWidgets: function(modelNode, parentWidget)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < modelNode.childNodes.length; i++)
|
||||||
|
{
|
||||||
|
if (modelNode.childNodes[i].nodeType == dojo.dom.ELEMENT_NODE)
|
||||||
|
{
|
||||||
|
dojo.debug("loading " + modelNode.childNodes[i] +
|
||||||
|
" nodeName " + modelNode.childNodes[i].nodeName +
|
||||||
|
" into " + parentWidget);
|
||||||
|
var w = this.createWidget(modelNode.childNodes[i]);
|
||||||
|
if (w != null)
|
||||||
|
{
|
||||||
|
parentWidget.addChild(w);
|
||||||
|
if (w instanceof alfresco.xforms.Group)
|
||||||
|
this.loadWidgets(modelNode.childNodes[i], w);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
getModel: function()
|
getModel: function()
|
||||||
{
|
{
|
||||||
return this.node.getElementsByTagName("model")[0];
|
return this.node.getElementsByTagName("model")[0];
|
||||||
@@ -1034,77 +1091,6 @@ dojo.declare("alfresco.xforms.XForm",
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function create_widget(xform, node)
|
|
||||||
{
|
|
||||||
switch (node.nodeName.toLowerCase())
|
|
||||||
{
|
|
||||||
case "xforms:group":
|
|
||||||
return new alfresco.xforms.Group(xform, node);
|
|
||||||
case "xforms:repeat":
|
|
||||||
return new alfresco.xforms.Repeat(xform, node);
|
|
||||||
case "xforms:textarea":
|
|
||||||
return new alfresco.xforms.TextArea(xform, node);
|
|
||||||
case "xforms:input":
|
|
||||||
var type = xform.getType(node);
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case "date":
|
|
||||||
return new alfresco.xforms.DatePicker(xform, node);
|
|
||||||
case "byte":
|
|
||||||
case "double":
|
|
||||||
case "float":
|
|
||||||
case "int":
|
|
||||||
case "integer":
|
|
||||||
case "long":
|
|
||||||
case "negativeInteger":
|
|
||||||
case "nonNegativeInteger":
|
|
||||||
case "nonPositiveInteger":
|
|
||||||
case "short":
|
|
||||||
case "unsignedByte":
|
|
||||||
case "unsignedInt":
|
|
||||||
case "unsignedLong":
|
|
||||||
case "unsignedShort":
|
|
||||||
case "positiveInteger":
|
|
||||||
return new alfresco.xforms.NumericStepper(xform, node, type);
|
|
||||||
case "string":
|
|
||||||
default:
|
|
||||||
return new alfresco.xforms.TextField(xform, node);
|
|
||||||
}
|
|
||||||
case "xforms:select1":
|
|
||||||
return (xform.getType(node) == "boolean"
|
|
||||||
? new alfresco.xforms.Checkbox(xform, node)
|
|
||||||
: new alfresco.xforms.Select1(xform, node));
|
|
||||||
case "xforms:submit":
|
|
||||||
return new alfresco.xforms.Submit(xform, node);
|
|
||||||
case "xforms:trigger":
|
|
||||||
return new alfresco.xforms.Trigger(xform, node);
|
|
||||||
case "chiba:data":
|
|
||||||
case "xforms:label":
|
|
||||||
case "xforms:alert":
|
|
||||||
return null;
|
|
||||||
default:
|
|
||||||
throw new Error("unknown type " + node.nodeName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function load_body(xform, currentNode, parentWidget)
|
|
||||||
{
|
|
||||||
dojo.lang.forEach(currentNode.childNodes, function(o)
|
|
||||||
{
|
|
||||||
if (o.nodeType == dojo.dom.ELEMENT_NODE)
|
|
||||||
{
|
|
||||||
dojo.debug("loading " + o + " NN " + o.nodeName + " into " + parentWidget);
|
|
||||||
var w = create_widget(xform, o);
|
|
||||||
if (w != null)
|
|
||||||
{
|
|
||||||
parentWidget.addChild(w);
|
|
||||||
if (w instanceof alfresco.xforms.Group)
|
|
||||||
load_body(xform, o, w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function addSubmitHandlerToButton(b)
|
function addSubmitHandlerToButton(b)
|
||||||
{
|
{
|
||||||
var baseOnClick = b.onclick;
|
var baseOnClick = b.onclick;
|
||||||
@@ -1231,27 +1217,13 @@ function ajax_loader_update_display()
|
|||||||
? " (" + _ajax_requests.length + ")"
|
? " (" + _ajax_requests.length + ")"
|
||||||
: "..."));
|
: "..."));
|
||||||
dojo.debug(ajaxLoader.innerHTML);
|
dojo.debug(ajaxLoader.innerHTML);
|
||||||
if (/*dojo.style.isVisible(ajaxLoader) && */ _ajax_requests.length == 0)
|
if (/* djConfig.isDebug && */ _ajax_requests.length != 0)
|
||||||
{
|
{
|
||||||
// dojo.fx.html.fadeOut(ajaxLoader,
|
dojo.style.show(ajaxLoader);
|
||||||
// 200,
|
|
||||||
// function(node)
|
|
||||||
// {
|
|
||||||
dojo.style.hide(ajaxLoader);
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
else if (/*!dojo.style.isVisible(ajaxLoader) && */ _ajax_requests.length != 0)
|
|
||||||
{
|
|
||||||
// dojo.fx.html.fadeIn(ajaxLoader,
|
|
||||||
// 100,
|
|
||||||
// function(node)
|
|
||||||
// {
|
|
||||||
dojo.style.show(ajaxLoader);
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
alert("v " + dojo.style.isVisible(ajaxLoader) + " l " + _ajax_requests.length);
|
dojo.style.hide(ajaxLoader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user