Revision: 3839
          http://vexi.svn.sourceforge.net/vexi/?rev=3839&view=rev
Author:   clrg
Date:     2010-05-12 02:12:45 +0000 (Wed, 12 May 2010)

Log Message:
-----------
Fix for script editing

Modified Paths:
--------------
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/select.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/selectid.t
    trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t

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       
2010-04-19 21:20:43 UTC (rev 3838)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/pane.t       
2010-05-12 02:12:45 UTC (rev 3839)
@@ -17,29 +17,29 @@
         </ui:box>
         <tabpane id="editors" />
         
+        var editors = {};
+        var model = {};
+        
         thisbox.scriptobj ++= function(v) {
             cascade = v;
-            $scripts.scripts = scriptobj;
-            var s = surface;
-            if (s and s.guidemodel) s.guidemodel.scripts = scriptobj;
+            $scripts.scripts = v;
+            model.scripts = v;
         }
         
-        var editors = {};
-        
         $scripts.value ++= function(v) {
             cascade = v;
             var c = editors[v];
             if (c == null) {
-                c = script.trap(vexi.box);
+                c = new script.trap();
                 c.script = v;
                 editors[v] = c;
-                $editors[$editors.numchildren] = c;
+                $editors.add(c);
             }
             $editors.show = c;
         }
         
-        var refreshTrap = function(v) {
-            $scripts.scripts = scriptobj;
+        model.RefreshScripts ++= function(v) {
+            $scripts.scripts = model.scripts;
             return;
         }
         
@@ -48,10 +48,8 @@
             cascade = v;
             var s = surface;
             if (s and s!=surf) {
+                s.scripts = model;
                 surf = s;
-                surf.editors = editors;
-                surf.scripts = scriptobj;
-                surf.RefreshScripts ++= refreshTrap;
             }
         }
         
@@ -126,12 +124,13 @@
                 s.code = "return true;";
             }
             s.name = $addscript_name.text;
-            if (!$func.selected)
-                s.scriptid = $addscript_id.value.uiwidget.scriptid;
+            if (!$func.selected) {
+                s.scriptid = $addscript_idlabel.value;
+            }
             var c = script.trap(vexi.box, [true]);
             c.script = s;
             editors[s] = c;
-            $editors[$editors.numchildren] = c;
+            $editors.add(c);
             surface.dialog.closeDialog($addscript);
             return;
         }

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/select.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/select.t     
2010-04-19 21:20:43 UTC (rev 3838)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/select.t     
2010-05-12 02:12:45 UTC (rev 3839)
@@ -10,13 +10,13 @@
         
         thisbox.scripts ++= function(v) {
             cascade = v;
-            while(thisbox[0]) thisbox[0] = null;
+            thisbox.clear();
             if (v!=null) {
-                for (var i=0; v.length>i; i++) {
-                    var j = .item(vexi.box);
-                    j.value = v[i];
-                    j.text = v[i].scriptid+"."+v[i].name+" ("+v[i].type+")";
-                    thisbox[thisbox.numchildren] = j;
+                for (var i,v_i in v) {
+                    var j = new .item();
+                    j.value = v_i;
+                    j.text = v_i.scriptid+"."+v_i.name+" ("+v_i.type+")";
+                    thisbox.add(j);
                 }
             }
         }

Modified: trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/selectid.t
===================================================================
--- trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/selectid.t   
2010-04-19 21:20:43 UTC (rev 3838)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/selectid.t   
2010-05-12 02:12:45 UTC (rev 3839)
@@ -10,13 +10,13 @@
         
         thisbox.scriptids ++= function(v) {
             cascade = v;
-            while (thisbox[0]) thisbox[0] = null;
+            thisbox.clear();
             if (v!=null) {
-                for (var k in v) {
-                    var i = .item(vexi.box);
+                for (var k,v_k in v) {
+                    var i = new .item();
                     i.text = k; // the object scriptid
-                    i.value = v[k]; // target uiobject
-                    thisbox[thisbox.numchildren] = i;
+                    i.value = v_k; // target uiobject
+                    thisbox.add(i);
                 }
             }
         }
@@ -33,6 +33,7 @@
             if (s and s!=surf) {
                 s.RefreshScriptIds ++= refreshTrap;
                 surf = s;
+                scriptids = s.scriptids;
             }
         }
         

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       
2010-04-19 21:20:43 UTC (rev 3838)
+++ trunk/widgets/org.vexi.guide/src/org/vexi/guide/script/trap.t       
2010-05-12 02:12:45 UTC (rev 3839)
@@ -58,11 +58,15 @@
                 b = $saveit;
                 break;
             }
-            // intercepted action key
             if (b) {
-                if (b.display and b.enabled) b.action = true;
-            // defer back to textarea
-            } else cascade = v;
+                // intercepted action key
+                if (b.display and b.enabled) {
+                    b.action = true;
+                }
+            } else {
+                // defer back to textarea
+                cascade = v;
+            }
         }
         
         var newscript = arguments[0];
@@ -74,7 +78,9 @@
             } else {
                 name = v.scriptid+"."+v.name+" &lt;"+v.type.charAt(0)+"&gt;";
             }
-            if (newscript) name = name + " [new]";
+            if (newscript) {
+                name = name + " [new]";
+            }
             $code.text = v.code;
             $code.enabled = newscript;
             $objectid.text = v.scriptid;
@@ -105,8 +111,7 @@
             try {
                 var a = script.type=="write" ? "v" : "";
                 var s = "return function("+a+") { "+$code.text+" };";
-                var scope = { obj:surface.guidemodel.scriptids, vexi:vexi, 
fun:{} };
-                vexi.log.info(s);
+                var scope = { obj:surface.scriptids, vexi:vexi, fun:{} };
                 var f = vexi.js.eval(s, scope);
                 if (script.type=="write") {
                     test ++= f;
@@ -134,11 +139,11 @@
             // if new script, add to obj
             if (newscript) {
                 var s = surface;
-                s.editors[script] = thisbox;
-                s.scripts[s.scripts.length] = script;
+                s.scripts.editors[script] = thisbox;
+                s.scripts.scripts.push(script);
             }
             // update any script references
-            surface.guidemodel.RefreshScripts = true;
+            surface.scripts.RefreshScripts = true;
             // no longer new
             newscript = false;
             // resets this editor
@@ -189,23 +194,30 @@
             </ui:box>
         </ui:box>
         
-        $delete.action ++= function(v) { surface.dialog.showDialog($deltrap); 
$deltrap_name.text = name; return; }
+        $delete.action ++= function(v) {
+            surface.dialog.showDialog($deltrap);
+            $deltrap_name.text = name;
+            return;
+        }
         
-        $deltrap_cancel.action ++= function(v) { 
surface.dialog.closeDialog($deltrap); return; }
+        $deltrap_cancel.action ++= function(v) {
+            surface.dialog.closeDialog($deltrap);
+            return;
+        }
         
         $deltrap_apply.action ++= function(v) {
-            var s = surface.guidemodel.scripts;
-            for (var i=0; s.length>i; i++) {
-                if (s[i] == script) {
+            var s = surface.scripts.scriptobj;
+            for (var i,s_i in s) {
+                if (s_i == script) {
                     s.splice(i, 1);
                     break;
                 }
             }
-            surface.guidemodel.RefreshScripts = true;
+            surface.scripts.RefreshScripts = true;
             surface.dialog.closeDialog($deltrap);
             thisbox = null;
             return;
         }
         
-    </webit:cardsimple>
+    </ui:box>
 </vexi>
\ No newline at end of file


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------

_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to