Revision: 1776
          http://svn.sourceforge.net/vexi/?rev=1776&view=rev
Author:   mkpg2
Date:     2007-03-31 03:17:05 -0700 (Sat, 31 Mar 2007)

Log Message:
-----------
Copying debugclient view code in from the old location

Added Paths:
-----------
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bp.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bpview.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/prefs/
    
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/prefs/preferences.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/line.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/srcview.t
    
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/tabbedtext.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/call.t
    
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/callstack.t
    core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/thread.t
    
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadcategory.t
    
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadview.t

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bp.t (from 
rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/bpview/bp.t)
===================================================================
--- core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bp.t    
                        (rev 0)
+++ core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bp.t    
2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,8 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+      xmlns:db="org.vexi.debugclient" >
+
+  <db:lineobject>
+       thisbox.ikon = "brkp_obj";
+  </db:lineobject>
+  
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bpview.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/bpview/bpview.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bpview.t    
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/bpoints/bpview.t    
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,66 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+          xmlns:db="org.vexi.debugclient"
+          xmlns:wi="vexi.widget">
+  <ui:box>
+    <wi:bevel form="down">
+      <wi:scrollpane shrink="false" cols="1" margin="5" 
autohidehorizontal="true" autohidevertical="true" >
+        <ui:box id="content" shrink="true" cols="1" align="topleft"/>
+      </wi:scrollpane>
+    </wi:bevel>
+
+       //////
+       // LOAD 
+       //////
+
+
+
+    var addItem = function(srcName,ln){
+      var item = db.bpview.bp(vexi.box);
+      item.srcName = srcName;
+      item.ln = ln;
+      $content[$content.numchildren] = item;
+    };
+    
+    var removeItem = function(srcName,ln){
+         for(var i=0; $content.numchildren > i ; i++)
+             if($content[i].srcName == srcName and
+                $content[i].ln == ln){
+                 $content[i] = null;
+                 return;
+             }
+    };
+    
+    var removeAll = function(){
+        while($content.numchildren) $content[0]= null;
+    };
+    
+    
+    /** Set breakpoints */
+    thisbox.setBreakPoints = function(bps){
+      vexi.log.info("setBreakPoints()");
+          for(var i=0; bps.length > i ; i++){
+             vexi.log.info("BP:-" + bps[i].source + ":" + bps[i].line);
+             var ln = bps[i].line;
+             var source = bps[i].source;
+             
+             thisbox.srcview.setBreakpoint(source,ln,true);
+             addItem(source,ln);
+          }
+
+    }
+    ///////////////
+    // EVENT LISTENING
+    var listener = {};
+    
+    listener.listenNewBreakPoints = function(event){
+       removeAll();
+       
+    };
+    
+       listener.listenBreakPointChanged = function(event){
+               if(event.on) addItem(event.srcName, event.ln);
+               else removeItem(event.srcName, event.ln);
+       };
+       db.event..listen(listener);    
+  </ui:box>
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/prefs/preferences.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/preferences/preferences.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/prefs/preferences.t 
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/prefs/preferences.t 
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,82 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+               xmlns="org.vexi.debugclient.preferences" 
+               xmlns:db="org.vexi.debugclient" 
+               xmlns:wi="vexi.widget" >
+    <meta:doc>
+      Author: Mike Goodwin
+    </meta:doc>
+    <wi:surface/>
+       static.prefs;
+       static.load = function(ps){
+               if(ps.tabwidth==null)ps.tabwidth=4;
+               prefs = ps;
+       
+       };
+       
+       
+    // LOAD preferences first thing (on activation of template)
+       var biscuit = vexi.biscuits.prefs;
+       load(biscuit);
+       
+    static.show = function(parent){
+               var prefsview = .preferences(vexi.box);
+               
+       var modaltrap = function(v){
+               // supposed to return function to the preferences frame
+               // not currently working ...
+               cascade = v;
+               prefsview.surface.Focused = true;
+       };
+       parent.surface.Focused ++= modaltrap;
+
+       prefsview.Close ++= function(v){
+               vexi.log.info("closing");
+               parent.surface.Focused --= modaltrap;
+       };
+    };
+    
+    <ui:box maxwidth="600" maxheight="400" fill="#d4d0c8" cols="1" title="moo">
+       <ui:box rows="1">
+               <ui:box/>
+               <ui:box text="Tab width (in spaces)" hshrink="true" 
align="right"/>
+               <ui:box width="10" hshrink="true"/>
+               <wi:textfield id="tabwidth" width="40" hshrink="true"  
align="left"/>
+               <ui:box/>
+       </ui:box>
+       <wi:pad margin="10" vshrink="true">
+               <ui:box/>
+               <wi:button id="ok" text="Ok"/>
+               <wi:button id="apply" text="Apply"/>
+               <wi:button id="cancel" text="Cancel"/>
+       </wi:pad>
+       
+       vexi.ui.frame=thisbox;
+
+               // Fill with current values
+               $tabwidth.text = static.prefs.tabwidth;
+               
+               var save = function(){           
+                       var biscuit = {};
+                       biscuit.tabwidth = $tabwidth.text;
+                       vexi.biscuits.prefs = biscuit;
+                       static.load(biscuit);
+                       db.event..sendEvent({name: "PrefsChanged"});
+               };
+        
+        
+       $ok.action ++= function(v){
+               save(); 
+               thisbox.Close = true;
+       };
+       $apply.action ++= function(v){
+               save(); 
+       };
+       $cancel.action ++= function(v){
+               vexi.log.info("cancel");
+               var x = vexi.foo;
+               thisbox.Close = true;
+       };
+       
+        
+    </ui:box>
+  </vexi>
\ No newline at end of file

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/line.t (from 
rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/srcview/line.t)
===================================================================
--- core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/line.t   
                        (rev 0)
+++ core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/line.t   
2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,65 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+      xmlns:db="org.vexi.debugclient" xmlns="">
+  <ui:box height="16">
+    <ui:box id="side" align="topleft" height="16" width="16" />
+    <ui:box id="bg" align="left" display="false" fill="#88ff88" packed="false" 
x="16" />
+    <ui:box width="2" />
+    <ui:box id="nb" align="right" height="16" width="20" />
+    <ui:box width="4" />
+    <db:srcview.tabbedtext id="main" height="16" align="left"/>
+    
+    <ui:box width="2" />
+    
+    thisbox.breakpoint = false;
+    // Property which through which the breakpoint is exported
+    thisbox.breakpointToggled;
+    thisbox.highlight = false;
+
+    thisbox.breakpoint ++= static.breakpoint;
+    thisbox.highlight ++= function(v) { 
+       if(v==null){
+               $bg.display = false;
+       }else{
+               $bg.display = true;
+               $bg.fill = v;
+       }
+       }
+       
+    thisbox.number ++= function(v) { $nb.text = v; }
+    thisbox.text ++= function(v) { $main.text = v; cascade = null; }
+    
+    $side.parent = thisbox;
+    $side.DoubleClick1 ++= static.doubleclick;
+    
+  </ui:box>
+  
+  static.doubleclick = function(v)
+  {
+      if (trapee.numchildren){
+        //trapee.parent.breakpoint = false;
+        trapee.parent.breakpointToggled = false;
+      }
+      else{ 
+        //trapee.parent.breakpoint = true;
+        trapee.parent.breakpointToggled = true;
+      }
+  }
+  
+  static.breakpoint = function(v)
+    {
+       if (v)
+       {
+               if (trapee[0].numchildren == 0)
+               {
+                       trapee[0][0] = vexi.box;
+                       trapee[0][0].fill = db.icons.brkp_obj;
+                       trapee[0][0].shrink = true;
+               }
+       }
+       else{
+        trapee[0][0] = null;
+       }
+       
+    }
+  
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/srcview.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/srcview/srcview.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/srcview.t    
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/srcview.t    
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,151 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+          xmlns="org.vexi.debugclient.srcview" 
+          xmlns:db="org.vexi.debugclient" 
+          xmlns:wi="vexi.widget">
+  <ui:box redirect="$content">
+    <wi:bevel form="down">
+      <wi:scrollpane id="pane" autohidehorizontal="true" 
autohidevertical="true" >
+        <ui:box packed="false">
+          <ui:box width="16" fill="gray" />
+          <ui:box width="24" fill="#DDDDDD" />
+          <ui:box fill="#EEEEEE" />
+        </ui:box>
+        <ui:box id="content" shrink="true" cols="1" align="topleft">
+
+        
+        </ui:box>
+      </wi:scrollpane>
+    </wi:bevel>
+    
+    
+    var srcName = "";    //source name
+    
+    /////////////
+    // BREAKPOINT Stuff
+    ////////
+            
+       /** Call server when we try to add/remove a break point
+           The visual modification (add/remove the icon) occurs 
+           only after the rpc call has returned*/
+       var breakpointToggled = function(v)
+       {
+          var ln = $content.indexof(trapee) + 1;
+          if(v) db.server..addBreakPoint(srcName, ln);
+          else db.server..removeBreakPoint(srcName, ln);
+       }
+               
+       $content.ChildAdded ++= function(c)
+       {
+           c.breakpointToggled ++= breakpointToggled;
+       }
+    
+    /////////////
+    // LOCATION Stuff
+    ////////
+    // Constructor
+    var C_location = function(srcName, ln){ return {srcName:srcName, ln:ln};}
+    
+    // Two possible locations to highlight. May both be highlighted if in same 
file.
+    // 1.Selected line (through selecting function
+    //   calls in the thread view or breakpoints
+    // 2.Executed line. Line being executed when we paused last.
+    var selected = null;
+    var executed = null;
+
+
+    
+    var unhighlight = function(location){
+       if(location!=null) $content[location.ln-1].highlight = null;
+    };
+    
+    var highlight = function(location, colour){
+       /*if(location!=null)
+               vexi.log.info("highlight " + location.srcName + ":" + 
location.ln +"  " +   colour + 
+                 "  " + (location.srcName == srcName) + "   " + 
location.srcName +","+ srcName);*/
+       if(location!=null and location.srcName == srcName){
+               $content[location.ln-1].highlight = colour;
+       }
+    };
+    
+    var moveview = function(newln){
+       $pane.setYOffset($pane.height/2 - $content[newln-1].y); 
+    };
+    
+    var refreshBreakPoints = function(){
+       
+    
+    };
+        
+    /** Set source code text in source view*/
+    thisbox.text ++= function(source){
+      //vexi.log.info("setText()");
+      //Clear previous text
+      while ($content[0]) $content[0] = null;
+      var lines = source.split('\n');
+      for (var i=0; lines.length>i; i++){
+        var line = .line(vexi.box);
+        line.text = lines[i];
+        line.number = i+1;
+        $content[$content.numchildren] = line;
+        //$pane.getYOffset(16*line);
+        
+      }
+      //vexi.log.info("text set");
+      cascade = null;
+      highlight(executed, "#88FF88");
+      highlight(selected, "orange");
+    }
+    
+    ///////////////
+    // EVENT LISTENING
+    var listener = {};
+       listener.listenBreakPointChanged = function(event){
+           if(event.srcName == srcName)
+               $content[event.ln-1].breakpoint = event.on;
+       
+       };
+       
+       listener.listenLineSelected = function(event){
+               var newlocation = C_location(event.srcName, event.ln);
+        var updateText = srcName != newlocation.srcName;
+
+        if(updateText){
+               selected = newlocation;
+               srcName = newlocation.srcName;
+               thisbox.text = db.server..getSource(srcName);
+        }else{
+            unhighlight(selected);
+            selected = newlocation;
+               highlight(selected, "orange");
+        }
+        moveview(selected.ln);
+       };
+       
+       
+       listener.listenStateChanged = function(message){
+           if(message.currentThread==null) return;
+        //vexi.log.info("updating srcview");
+        
+        var newlocation = C_location(message.currentThread.srcName, 
message.currentThread.ln);
+        var updateText = newlocation.srcName != null and srcName != 
newlocation.srcName;
+        //vexi.log.info(srcName + " "  + newlocation.srcName);
+        if(updateText){
+               executed = newlocation;
+               srcName = newlocation.srcName;
+               thisbox.text = db.server..getSource(srcName);
+        }else{
+            unhighlight(executed);
+            executed = newlocation;
+               highlight(executed, "#88FF88");
+        }
+        moveview(executed.ln);
+       };
+       
+       
+       listener.listenPrefsChanged = function(message){
+               // Refresh text, to reflect change in tabwidths
+       };
+       
+       db.event..listen(listener);
+  </ui:box>
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/tabbedtext.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/srcview/tabbedtext.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/tabbedtext.t 
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/source/tabbedtext.t 
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,57 @@
+<vexi xmlns:ui="vexi://ui" 
+         xmlns="" 
+         xmlns:db="org.vexi.debugclient"
+      xmlns:wi="vexi.widget">
+    
+    static.tabtext;
+    
+    var setTabWidth = function(){  
+           var tabwidth = db.preferences.preferences..prefs.tabwidth;
+           var tab = "";
+       for(var i=0; tabwidth>i ; i++) tab += " ";
+       static.tabtext = tab;
+    }
+    setTabWidth();
+    var listener = {};       
+    listener.listenPrefsChanged = function(message){
+               setTabWidth();
+       };
+       db.event..listen(listener);
+      
+    <ui:box>
+        <ui:box id="text" hshrink="true" align="left"/>
+
+        var addWord = function(txt){
+            if(txt.length>1){
+                var b = vexi.box;
+                b.text = txt;
+                b.font = .vexi.font.VeraMono;
+                //vexi.log.info("word :" + numchildren);
+                $text[$text.numchildren] = b;
+                //thisbox[numchildren].shrink=true;
+            }
+        };
+    
+        var addTab = function(){
+            var b = vexi.box;
+            b.text=static.tabtext;
+            b.hshrink=true;
+            b.font = .vexi.font.VeraMono;
+            //vexi.log.info("tab :" + numchildren);
+            $text[$text.numchildren] = b;
+        };
+    
+        thisbox.text ++= function(v){    
+                var strs = v.split("\t");
+                //vexi.log.info("v: " + v);
+                //vexi.log.info("strs.length: " + strs.length);
+               
+                if(strs.length>=1) addWord(strs[0]);
+                for(var i=1; strs.length>i; i++){
+                    addTab();
+                    addWord(strs[i]);
+                }
+                cascade = null;
+        };
+    </ui:box>
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/call.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/threadview/call.t)
===================================================================
--- core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/call.t  
                        (rev 0)
+++ core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/call.t  
2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,9 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+      xmlns:db="org.vexi.debugclient" >
+
+  <!-- FIXME, don't directly use theme -->
+  <db:lineobject>
+       thisbox.ikon = "stckframe_obj";
+  </db:lineobject>
+  
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/callstack.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/threadview/callstack.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/callstack.t 
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/callstack.t 
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,25 @@
+<vexi xmlns:ui="vexi://ui" 
+         xmlns:meta="vexi://meta"
+         xmlns:wi="vexi.widget"
+         xmlns="org.vexi.debugclient.threadview" >
+         
+    static.singleton;
+       //vexi.log.info("hi");  
+         
+    <ui:box cols="1">
+       static.singleton = thisbox;
+       thisbox.set = function(callstackMsg){
+       
+                       while(numchildren>0)thisbox[0] = null;  
+                   
+                   for(var i=0; callstackMsg.length>i; i++){
+                           var b = .call(vexi.box);
+                       b.srcName = callstackMsg[i].srcName;
+                       b.ln = callstackMsg[i].ln;
+                       thisbox[numchildren] = b;
+                   };  
+                       thisbox[numchildren] = vexi.box;
+               };
+    </ui:box>
+    
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/thread.t 
(from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/threadview/thread.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/thread.t    
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/thread.t    
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,51 @@
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta"
+      xmlns:icons="org.vexi.debugclient.icons"
+      xmlns="org.vexi.debugclient.threadview"
+      xmlns:win2k="org.vexi.theme.win2k">
+
+  <!-- FIXME, don't directly use theme -->
+  <win2k:focusborder show="false">
+    <ui:box cols="2" align="left"  shrink="true">
+      <ui:box id="threadicon" shrink="true" />
+      <ui:box id="main" height="16" align="topleft"/>
+    </ui:box>
+    var update = function(){
+       $main.text = srcName + ":" + ln;
+    };
+    
+    thisbox.srcName ++= function(v) {
+        cascade = v;
+        update();
+    };
+    
+    thisbox.ln ++= function(v) {
+        cascade = v;
+        update();
+    };
+    
+    
+    thisbox.threadicon ++= function(v){
+      $threadicon.fill = icons[v];
+    }
+    
+    thisbox.DoubleClick1 ++= static.doubleclick;
+    thisbox.Click1 ++= static.click;
+    
+  </win2k:focusborder>
+  static.current;
+  
+  static.doubleclick = function(v)
+  {
+      vexi.log.info("double clicked");
+  }
+ 
+  static.click = function(v)
+  {
+      if(static.current!=null)static.current.show = false;
+      static.current = trapee;
+      static.current.show = true;
+      .callstack..singleton.set(trapee.callStack);
+  }
+  
+  
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadcategory.t
 (from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/threadview/threadcategory.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadcategory.t
                                (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadcategory.t
        2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,31 @@
+<vexi xmlns:ui="vexi://ui" 
+         xmlns:meta="vexi://meta"
+         xmlns:wi="vexi.widget"
+         xmlns="org.vexi.debugclient.threadview" >
+    <wi:bevel cols="1" vshrink="true" aligh="top" pack="true">
+       thisbox.threadicon;
+    
+        var add = function(threadMsg){
+               var t = .thread(vexi.box);
+           if(threadicon!=null)
+               t.threadicon = threadicon;
+               t.srcName = threadMsg.srcName;
+               t.ln = threadMsg.ln;
+               t.callStack = threadMsg.callStack;
+               
+               thisbox[numchildren]=t;
+        };
+    
+       thisbox.addThread = function(threadMsg){
+               while(numchildren>0)thisbox[0] = null;
+                       add(threadMsg);
+       };
+       
+       thisbox.addThreads = function(threadsMsg){
+               while(numchildren>0)thisbox[0] = null;
+               for(var i=0; threadsMsg.length>i; i++){
+                       add(threadsMsg[i]);
+               }
+       };
+    </wi:bevel>
+</vexi>

Copied: 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadview.t
 (from rev 1775, 
some_apps/trunk/org.vexi.debugclient/src/org/vexi/debugclient/threadview/threadview.t)
===================================================================
--- 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadview.t
                            (rev 0)
+++ 
core/trunk/org.vexi.debugclient/src/org/vexi/debugclient/ui/threads/threadview.t
    2007-03-31 10:17:05 UTC (rev 1776)
@@ -0,0 +1,42 @@
+<vexi xmlns:ui="vexi://ui" 
+      xmlns:wi="vexi.widget"
+      xmlns:db="org.vexi.debugclient"
+      xmlns="org.vexi.debugclient.threadview">
+    <ui:box rows="1">
+        <wi:splitpane orient="horizontal">
+            <wi:bevel form="down" >
+                <wi:scrollpane autohidehorizontal="true" 
autohidevertical="true" cols="1" >
+                    <threadcategory fill="green" id="running" 
+                    threadicon="thread_obj_running"/>
+                       <threadcategory fill="orange" id="waiting" 
+                    threadicon="thread_obj_waiting"/>
+                    <threadcategory fill="red" id="sleeping" 
threadicon="thread_obj_sleeping"/>                
+                    <ui:box/>
+                </wi:scrollpane>
+            </wi:bevel>
+            <wi:divider hshrink="true" />
+            <wi:bevel form="down" >
+                <wi:scrollpane  autohidehorizontal="true" 
autohidevertical="true" padding="3" cols="1" >
+                    <callstack/>
+                </wi:scrollpane>
+            </wi:bevel>
+            
+        </wi:splitpane>
+        
+        var listener = {};
+           listener.listenStateChanged =  function(message){
+           //vexi.log.info("updating threadview");
+            
+           if(message.currentThread!=null)
+               $running.addThread(message.currentThread);
+           if(message.scheduledThreads!=null)
+               $waiting.addThreads(message.scheduledThreads);
+           if(message.sleepingThreads!=null)
+               $sleeping.addThreads(message.sleepingThreads);
+
+           
+           }
+               db.event..listen(listener);
+        
+    </ui:box>
+</vexi>


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

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to