Revision: 3361
          http://vexi.svn.sourceforge.net/vexi/?rev=3361&view=rev
Author:   clrg
Date:     2009-01-19 12:36:07 +0000 (Mon, 19 Jan 2009)

Log Message:
-----------
Begin move to using object property on surface

Modified Paths:
--------------
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/item.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/pane.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/main.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t     2009-01-19 
03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/board.t     2009-01-19 
12:36:07 UTC (rev 3361)
@@ -26,13 +26,19 @@
         </scrollpane>
         <ui:box id="nodice" display="false" />
         
-        // efficient reference to surface.insert
-        var insert;
+        //////////
+        // Surface interaction
         
-        thisbox.active;
-        thisbox.insertinto;
-        thisbox.selected;
+        var model = {};
+        var modelRead = function() { return model; }
         
+        surface ++= function(v) {
+            var s = surface;
+            if (s) s.guidemodel --= modelRead;
+            cascade = v;
+            if (v) v.guidemodel ++= modelRead;
+        }
+        
         thisbox.enabled = true;
         thisbox.viewactual ++= function(v) { cascade = v; $canvas.viewactual = 
v; }
         
@@ -55,60 +61,60 @@
         
         var trackInsert = function(v) {
             cascade = v;
-            if (!insertinto or !insert) return;
-            if (!insertinto.uiwidget.redirect) return;
-            var o = insert.object;
-            var n = insertinto.overlay.numchildren;
+            if (!model.insertinto or !model.insert) return;
+            if (!model.insertinto.uiwidget.redirect) return;
+            var i = model.insertinto;
+            var n = i.overlay.numchildren;
+            var o = model.insert.object;
             // no children, place directly at 0 index
-            if (n==0) { insertinto[0] = o; return; }
+            if (n==0) { i[0] = o; return; }
             // single child that is already insert object
-            if (n==1 and insertinto[0] == o) return;
+            if (n==1 and i[0] == o) return;
             // begin placing heuristics
-            var h = insertinto.uiwidget.orient == "horizontal";
+            var h = i.uiwidget.orient == "horizontal";
             var pos = h ? 'x' : 'y';
             var dim = h ? 'width' : 'height';
             // use the overlay when assessing; actual objects are most
             // probably altered in size by the insert object by now
-            var mpos = insertinto.overlay.mouse[pos];
+            var mpos = i.overlay.mouse[pos];
             var ioff = 0;
             for (var i=0; n>i; i++) {
                 // don't count insert.object when assessing insertion position
-                if (insertinto[i] == insert.object) { ioff++; continue; }
+                if (i[i] == o) { ioff++; continue; }
                 // use the overlay when assessing; actual objects are most
                 // probably altered in size by the insert object by now
-                var d = insertinto.overlay.distanceto(insertinto[i].overlay);
+                var d = i.overlay.distanceto(i[i].overlay);
                 if (d[pos]+10>=mpos) {
-                    insertinto[i-ioff] = insert.object;
+                    i[i-ioff] = o;
                     return;
                 }
             }
-            insertinto[n] = insert.object;
+            i[n] = o;
         }
         
         var placeInsert = function(v) {
-            surface.insert = null;
+            model.insert = null;
             trapee[trapname] --= callee;
             return;
         }
         
-        thisbox.active ++= function(v) {
-            if (active) active.active = false;
+        model.active ++= function(v) {
+            if (model.active) model.active.active = false;
             cascade = v;
-            if (active) active.active = true;
+            if (model.active) model.active.active = true;
         }
         
-        thisbox.insertinto ++= function(v) {
-            var i = insertinto;
+        model.insertinto ++= function(v) {
+            var i = model.insertinto;
             cascade = v;
-            if (!v and i and insert) {
-                var ind = i.indexof(insert.object);
+            if (!v and i and model.insert) {
+                var ind = i.indexof(model.insert.object);
                 if (ind>=0) i[ind] = null;
             }
         }
         
-        var surfaceInsertWrite = function(v) {
-            cascade = v;
-            if (v == insert) return;
+        model.insert ++= function(v) {
+            if (v == model.insert) return;
             if (v) {
                 $select.cursor = "hand";
                 $select.Leave ++= trackInsert;
@@ -117,9 +123,9 @@
                 $select._Release1 ++= placeInsert;
                 v.object.insert = true;
             }
-            var i = insert;
-            insert = v;
-            if (i and !insert) {
+            var i = model.insert;
+            cascade = v;
+            if (i and !v) {
                 $select.cursor = null;
                 $select.Leave --= trackInsert;
                 $select._Move --= trackInsert;
@@ -130,7 +136,7 @@
                 if (i.object.visible) {
                     i.object.overlay.display = true;
                     i.object.active = false;
-                    selected = i.object;
+                    model.selected = i.object;
                 } else {
                     if (i.object.overlay)
                         i.object.overlay.thisbox = null;
@@ -141,27 +147,13 @@
         }
         
         /** set selected state on selected uiobject */
-        var surfaceSelectWrite = function(v) {
-            if (v == selected) return;
-            var s = surface;
-            if (s and s.selected) s.selected.selected = false;
+        model.selected ++= function(v) {
+            if (v == model.selected) return;
+            if (model.selected) model.selected.selected = false;
             cascade = v;
-            if (s and s.selected) s.selected.selected = true;
+            if (model.selected) model.selected.selected = true;
         }
         
-        thisbox.visible ++= function(v) {
-            var s = surface;
-            if (!v and s) {
-                s.insert --= surfaceInsertWrite;
-                s.selected --= surfaceSelectWrite;
-            }
-            cascade = v;
-            if (v and s) {
-                s.insert ++= surfaceInsertWrite;
-                s.selected ++= surfaceSelectWrite;
-            }
-        }
-        
         ////////
         // normal selection logic
         
@@ -176,7 +168,7 @@
         /** assigned to uiobject._Press1 to request selection */
         var pressWrite = function(v) {
             cascade = v;
-            if (!insert) selectreq = trapee;
+            if (!model.insert) selectreq = trapee;
         }
         
         var dragObject = function(v) {
@@ -186,14 +178,14 @@
             trapee.object.display = false;
             $canvas.forcereflow();
             var i = { object: trapee.object };
-            surface.insert = i;
+            model.insert = i;
             trapee.Leave --= callee;
             trapee.object.display = true;
         }
         
         var selectObject = function(v) {
             cascade = v;
-            if (selectreq == trapee) selected = trapee.object;
+            if (selectreq == trapee) model.selected = trapee.object;
             trapee.Leave --= dragObject;
             trapee.Release1 --= callee;
         }
@@ -210,8 +202,8 @@
         
         /** deselect if clicking on the background */
         Press1 ++= function(v) {
-            if (insert) surface.insert = null;
-            else selected = null;
+            if (model.insert) model.insert = null;
+            else model.selected = null;
             return;
         }
         
@@ -223,7 +215,7 @@
         var activateWrite = function(v) {
             if (v) activestack.push(trapee.object);
             else activestack.remove(trapee.object);
-            active = activestack.last;
+            model.active = activestack.last;
             return;
         }
         
@@ -235,11 +227,11 @@
         var insertintoWrite = function(v) {
             if (v) insertstack.push(trapee.object);
             else insertstack.remove(trapee.object);
-            insertinto = insertstack.last;
+            model.insertinto = insertstack.last;
             return;
         }
         
-        var insertmodeRead = function() { return insert!=null; }
+        var insertmodeRead = function() { return model.insert!=null; }
         
         /////////
         // general canvas tree handling
@@ -282,7 +274,7 @@
                 child.overlay = s;
             }
             // do not yet display overlay for the insert object
-            s.display = insert == null or insert.object != child;
+            s.display = model.insert == null or model.insert.object != child;
             parent.overlay[index] = s;
             // in case we've added a new tree of uiobjects
             var n = child.numchildren;
@@ -309,18 +301,18 @@
             switch (v) {
             // remove selected object, protecting canvas[0]
             case "delete":
-                var s = selected;
+                var s = model.selected;
                 if (s and s != $canvas[0]) {
                     s.overlay.thisbox = null;
                     s.thisbox = null;
                     s = null;
                 }
-                selected = null;
+                model.selected = null;
                 break;
             // cancel an insert request, otherwise deselect
             case "escape":
-                if (insert) surface.insert = null;
-                else selected = null;
+                if (model.insert) model.insert = null;
+                else model.selected = null;
                 break;
             }
         }

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/item.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/item.t       
2009-01-19 03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/item.t       
2009-01-19 12:36:07 UTC (rev 3361)
@@ -125,7 +125,7 @@
         thisbox.active   ++= function(v) { $bevel.form = "down"; return; }
         thisbox.hover    ++= function(v) { $bevel.form = selected ? "thindown" 
: "flat"; return; }
         thisbox.normal   ++= function(v) { $bevel.form = selected ? "thindown" 
: null; return; }
-        thisbox.action   ++= function(v) { surface.insertreq = thisbox; 
return; }
+        thisbox.action   ++= function(v) { surface.guidemodel.insertreq = 
thisbox; return; }
         
         rdt..addRedirect(thisbox, $content, "layout", "orient", "padding");
         

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/pane.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/pane.t       
2009-01-19 03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/insert/pane.t       
2009-01-19 12:36:07 UTC (rev 3361)
@@ -22,14 +22,15 @@
         
         /** do this on Leave as that's when we likely want the widget */
         thisbox.getInsertObject = function() {
-            var s = surface.insertreq;
+            var s = surface;
+            var r = s.guidemodel.insertreq;
             // already have a relevant insert
-            var i = surface.insert;
-            if (i and (!i.creator or (i.creator == s))) return i;
+            var i = s.guidemodel.insert;
+            if (i and (!i.creator or (i.creator == r))) return i;
             // need to create new insert object
-            var o = s.getObject ? s.getObject() : null;
+            var o = r.getObject ? r.getObject() : null;
             if (o == null) { return null; }
-            return { object: o, creator: s };
+            return { object: o, creator: r };
         }
         
         ////////

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/main.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/main.t      2009-01-19 
03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/main.t      2009-01-19 
12:36:07 UTC (rev 3361)
@@ -61,17 +61,21 @@
         // insert request
         
         /** maintain the state of the insert requesting objects */
-        surface.insertreq ++= function(v) {
-            if (surface.insertreq) surface.insertreq.selected = false;
+        surface.guidemodel.insertreq ++= function(v) {
+            var s = surface;
+            var m = s ? s.guidemodel : null;
+            if (m.insertreq) m.insertreq.selected = false;
             cascade = v;
-            if (surface.insertreq) surface.insertreq.selected = true;
+            if (m.insertreq) m.insertreq.selected = true;
         }
         
         /** insert request for select mode */
-        $selectmode.Press1 ++= function(v) { surface.insertreq = $selectmode; 
cascade = v; }
+        $selectmode.Press1 ++= function(v) { surface.guidemodel.insertreq = 
$selectmode; cascade = v; }
         
         // initialize
-        surface.insertreq = $selectmode;
+        vexi.thread = function() {
+            surface.guidemodel.insertreq = $selectmode;
+        }
         
         ////////
         // inter-operation for guide panes
@@ -95,18 +99,18 @@
         }
         
         /** assign active ui object to properties view */
-        $board.selected ++= function(v) {
+        surface.guidemodel.selected ++= function(v) {
             cascade = v;
-            surface.current = v;
+            surface.guidemodel.current = v;
             $propset.current = v;
             $propadd.current = v;
         }
         
         /** insert object and board interaction */
-        surface.insert ++= function(v) { cascade = v; if (!v) 
surface.insertreq = $selectmode; }
+        surface.guidemodel.insert ++= function(v) { cascade = v; if (!v) 
surface.guidemodel.insertreq = $selectmode; }
         
         /** pass insertion request onto the board */
-        $board.Enter ++= function(v) { cascade = v; surface.insert = 
$insert.getInsertObject(); }
+        $board.Enter ++= function(v) { cascade = v; surface.guidemodel.insert 
= $insert.getInsertObject(); }
         
         ////////
         // form loading
@@ -167,8 +171,8 @@
             vexi.ui.frame = thisbox;
             // work around asynchronous frame sizing issues
             vexi.thread = function(v) {
-                surface.RefreshScripts = true;
-                surface.RefreshScriptIds = true;
+                surface.guidemodel.RefreshScripts = true;
+                surface.guidemodel.RefreshScriptIds = true;
             }
         }; // end constructor
         
@@ -197,7 +201,7 @@
         $delform_cancel.action ++= function(v) { 
surface.dialog.closeDialog($delform); return; }
         
         // used to remove a form from the server and clean up
-        var delform = function() { 
surface.getServerObj("Client").removeForm(form.id); }
+        var delform = function() { 
surface.rpc.getServerObj("Client").removeForm(form.id); }
         
         var delform_end = function() {
             global.form[form.id] = null;

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t       
2009-01-19 03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t       
2009-01-19 12:36:07 UTC (rev 3361)
@@ -20,7 +20,7 @@
         thisbox.scriptobj ++= function(v) {
             cascade = v;
             $scripts.scripts = scriptobj;
-            if (surface) surface.scripts = scriptobj;
+            if (surface) surface.guidemodel.scripts = scriptobj;
         }
         
         var editors = {};

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t       
2009-01-19 03:44:41 UTC (rev 3360)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t       
2009-01-19 12:36:07 UTC (rev 3361)
@@ -105,7 +105,7 @@
             try {
                 var a = script.type=="write" ? "v" : "";
                 var s = "return function("+a+") { "+$code.text+" };";
-                var scope = { obj:surface.scriptids, vexi:vexi, fun:{} };
+                var scope = { obj:surface.guidemodel.scriptids, vexi:vexi, 
fun:{} };
                 vexi.log.info(s);
                 var f = vexi.js.eval(s, scope);
                 if (script.type=="write") {
@@ -138,7 +138,7 @@
                 s.scripts[s.scripts.length] = script;
             }
             // update any script references
-            surface.RefreshScripts = true;
+            surface.guidemodel.RefreshScripts = true;
             // no longer new
             newscript = false;
             // resets this editor
@@ -194,14 +194,14 @@
         $deltrap_cancel.action ++= function(v) { 
surface.dialog.closeDialog($deltrap); return; }
         
         $deltrap_apply.action ++= function(v) {
-            var s = surface.scripts;
+            var s = surface.guidemodel.scripts;
             for (var i=0; s.length>i; i++) {
                 if (s[i] == script) {
                     s.splice(i, 1);
                     break;
                 }
             }
-            surface.RefreshScripts = true;
+            surface.guidemodel.RefreshScripts = true;
             surface.dialog.closeDialog($deltrap);
             thisbox = null;
             return;


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:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to