Revision: 3188 http://vexi.svn.sourceforge.net/vexi/?rev=3188&view=rev Author: clrg Date: 2008-11-10 11:17:35 +0000 (Mon, 10 Nov 2008)
Log Message: ----------- Improving integration capability: - revert to using board.selected instead of surface.selected to allow for multiple concurrent boards - uiobject registers fields against a designated fieldmanager instead of surface Modified Paths: -------------- trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t trunk/widgets/org.vexi.guide/src/org/vexi/guide/uiobject.t Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t =================================================================== --- trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t 2008-11-09 23:38:15 UTC (rev 3187) +++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t 2008-11-10 11:17:35 UTC (rev 3188) @@ -29,12 +29,13 @@ // efficient reference to surface.insert var insert; + thisbox.active; + thisbox.insertinto; + thisbox.selected; + thisbox.enabled = true; thisbox.viewactual ++= function(v) { cascade = v; $canvas.viewactual = v; } - thisbox.active; - thisbox.insertinto; - //////// // sync in background thread @@ -129,7 +130,7 @@ if (i.object.visible) { i.object.overlay.display = true; i.object.active = false; - surface.selected = i.object; + selected = i.object; } else { if (i.object.overlay) i.object.overlay.thisbox = null; @@ -186,7 +187,7 @@ var selectObject = function(v) { cascade = v; - if (selectreq == trapee) surface.selected = trapee.object; + if (selectreq == trapee) selected = trapee.object; trapee.Leave --= dragObject; trapee.Release1 --= callee; } @@ -204,7 +205,7 @@ /** deselect if clicking on the background */ Press1 ++= function(v) { if (insert) surface.insert = null; - else surface.selected = null; + else selected = null; return; } @@ -302,7 +303,7 @@ switch (v) { // remove selected object, protecting canvas[0] case "delete": - var s = surface.selected; + var s = selected; if (s and s != $canvas[0]) { s.overlay.thisbox = null; s.thisbox = null; @@ -312,7 +313,7 @@ // cancel an insert request, otherwise deselect case "escape": if (insert) surface.insert = null; - else surface.selected = null; + else selected = null; break; } } Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/uiobject.t =================================================================== --- trunk/widgets/org.vexi.guide/src/org/vexi/guide/uiobject.t 2008-11-09 23:38:15 UTC (rev 3187) +++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/uiobject.t 2008-11-10 11:17:35 UTC (rev 3188) @@ -19,6 +19,8 @@ <margin id="content" layout="layer" margin="5" /> <border id="border1" depth="1"><border id="border2" depth="1" /></border> + thisbox.fieldmanager; + thisbox.parent; thisbox.overlay; thisbox.uiwidget; @@ -108,6 +110,25 @@ return o; } + var surfaceWrite = function(v) { + cascade = v; + if (!surface and fieldmanager and fieldmanager.unregisterField) + fieldmanager.unregisterField(thisbox); + } + + fieldinfo ++= function(v) { + if (fieldinfo and fieldmanager and fieldmanager.unregisterField) + fieldmanager.unregisterField(thisbox); + cascade = v; + if (v) { + surface ++= surfaceWrite; + if (fieldmanager and fieldmanager.registerField) + fieldmanager.registerField(thisbox); + } else { + surface --= surfaceWrite; + } + } + //////// // sets an appropriate border effect according to edit state of the ui object @@ -156,27 +177,13 @@ normal = true; - var surf; - var surfaceWrite = function(v) { - if (surf and fieldinfo and surf.unregisterField) - surf.unregisterField(thisbox); - cascade = v; surf = surface; - if (surf and fieldinfo and surf.registerField) - surf.registerField(thisbox); - } - - fieldinfo ++= function(v) { - cascade = v; - surface ++= surfaceWrite; - } - </ui:box> // scriptid references static.scriptids = {}; /** recursive function to build a widget tree from our js objects */ - static.unserialize = function(o) { + static.unserialize = function(o, fieldmanager) { if (o == null or (keysof(o)).size==0) return null; //for (var k in o) vexi.log.info(k+": "+o[k]); var c = guide.insert.item..components[o.namespace+"."+o.template]; @@ -186,6 +193,7 @@ c.template = o.template; } c = c.getObject(); + c.fieldmanager = fieldmanager; c.fieldinfo = o.fieldinfo; // set properties for (var k in o.properties) @@ -196,7 +204,7 @@ // iterate over children var l = o.children ? o.children.length : 0; for (var i=0; l>i; i++) { - c[i] = callee(o.children[i]); + c[i] = callee(o.children[i], fieldmanager); c[i].parent = c; } return c; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn