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
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn