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:
Ariel Backenroth
2006-09-26 17:56:03 +00:00
parent 8b3e6b01a0
commit 5fdef3896a

View File

@@ -251,18 +251,8 @@ dojo.declare("alfresco.xforms.TextArea",
this.domNode.setAttribute("style", "height: 200px; border: solid 1px black;");
this.domNode.setAttribute("id", this.id);
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);
},
_clickHandler: function(event)
{
},
_blurHandler: function(event)
{
alert('blurry');
}
});
dojo.declare("alfresco.xforms.Select1",
@@ -752,9 +742,9 @@ dojo.declare("alfresco.xforms.Repeat",
{
dojo.debug(this.id + ".handleItemInserted(" + clonedPrototype.nodeName +
", " + position + ")");
var w = create_widget(this.xform, clonedPrototype);
var w = this.xform.createWidget(clonedPrototype);
this.insertChildAt(w, position);
load_body(this.xform, w.node, w);
this.xform.loadWidgets(w.node, w);
},
handleItemDeleted: function(position)
{
@@ -865,11 +855,78 @@ dojo.declare("alfresco.xforms.XForm",
var root = new alfresco.xforms.Group(this, 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()
{
@@ -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)
{
var baseOnClick = b.onclick;
@@ -1231,27 +1217,13 @@ function ajax_loader_update_display()
? " (" + _ajax_requests.length + ")"
: "..."));
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,
// 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
{
alert("v " + dojo.style.isVisible(ajaxLoader) + " l " + _ajax_requests.length);
dojo.style.hide(ajaxLoader);
}
}