]> gitweb.factorcode.org Git - factor.git/commitdiff
Add 'Inspect model' operation
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 5 Feb 2009 10:00:27 +0000 (04:00 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 5 Feb 2009 10:00:27 +0000 (04:00 -0600)
ui.tools.traceback: use new UI inspector

basis/inspector/inspector.factor
basis/ui/tools/inspector/inspector.factor
basis/ui/tools/operations/operations.factor
basis/ui/tools/tools.factor
basis/ui/tools/traceback/traceback.factor

index 1347b4f207dfdefd1a35d320eed90d11f17118ac..05c4dc2a946f45d26ce658c296c1cfb965b08302 100644 (file)
@@ -52,15 +52,15 @@ PRIVATE>
 
 M: tuple error. describe ;
 
-: namestack. ( seq -- )
+: vars-in-scope ( seq -- alist )
     [ [ global eq? not ] filter [ keys ] gather ] keep
-    '[ dup _ assoc-stack ] H{ } map>assoc describe ;
+    '[ dup _ assoc-stack ] H{ } map>assoc ;
 
 : .vars ( -- )
-    namestack namestack. ;
+    namestack vars-in-scope describe ;
 
 : :vars ( -- )
-    error-continuation get name>> namestack. ;
+    error-continuation get name>> vars-in-scope describe ;
 
 SYMBOL: me
 
index fa45868c64fe0028e1c5b62dac7a7ad8959059cc..1e9a99e1980dec1f401eaff13f2df44ef31921a0 100644 (file)
@@ -65,10 +65,10 @@ M: hashtable make-slot-descriptions
         inspector-renderer >>renderer
         monospace-font >>font ;
 
-: <inspector-gadget> ( obj -- gadget )
+: <inspector-gadget> ( model -- gadget )
     vertical inspector-gadget new-track
         add-toolbar
-        swap <model> >>model
+        swap >>model
         dup model>> <inspector-table> >>table
         dup model>> <summary-gadget> "Object" <labelled-gadget> f track-add
         dup table>> <scroller> "Contents" <labelled-gadget> 1 track-add ;
@@ -112,5 +112,8 @@ inspector-gadget "multi-touch" f {
     { up-action com-refresh }
 } define-command-map
 
+: inspect-model ( model -- )
+    <inspector-gadget> "Inspector" open-status-window ;
+
 : inspector ( obj -- )
-    <inspector-gadget> "Inspector" open-status-window ;
\ No newline at end of file
+    <model> inspect-model ;
index ec3a7a2cf599c52cacb1eb13a69040d01713fefe..fa259032d31ce8f7645262e557ece91e92db79ed 100644 (file)
@@ -9,7 +9,7 @@ compiler.units accessors vocabs.parser macros.expander ui
 ui.tools.browser ui.tools.listener ui.tools.listener.completion
 ui.tools.profiler ui.tools.inspector ui.tools.traceback
 ui.commands ui.gadgets.editors ui.gestures ui.operations
-ui.tools.deploy ;
+ui.tools.deploy models ;
 IN: ui.tools.operations
 
 V{ } clone operations set-global
@@ -35,8 +35,12 @@ V{ } clone operations set-global
 
 [ drop t ] \ com-unparse H{ } define-operation
 
-! Input
+! Models
+[ model? ] \ inspect-model H{
+    { +primary+ t }
+} define-operation
 
+! Input
 : com-input ( obj -- ) string>> listener-input ;
 
 [ input? ] \ com-input H{
index 0b93807ca88ce5433bfd755ccac920dca514a3c7..8aed4319d356bbf54ab62d9489bd7d9333441548 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2006, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: memory system kernel tools.vocabs ui.tools.operations
-ui.tools.listener ui.tools.browser ui.tools.common ui.commands
-ui.gestures ui ;
+ui.tools.listener ui.tools.browser ui.tools.common
+ui.tools.walker ui.commands ui.gestures ui ;
 IN: ui.tools
 
 : main ( -- )
index 2d96dbb9c5c5c85233d5eac3b4aba6a86ed25c72..bb09aa2de221b7f38e6fcd709a555951ad6798f7 100644 (file)
@@ -3,8 +3,9 @@
 USING: accessors continuations kernel models namespaces
 prettyprint ui ui.commands ui.gadgets ui.gadgets.labelled assocs
 ui.gadgets.tracks ui.gadgets.buttons ui.gadgets.panes
-ui.gadgets.status-bar ui.gadgets.scrollers ui.tools.inspector
-ui.gestures sequences hashtables inspector ;
+ui.gadgets.status-bar ui.gadgets.scrollers
+ui.gestures sequences inspector models.filter ;
+QUALIFIED-WITH: ui.tools.inspector i
 IN: ui.tools.traceback
 
 : <callstack-display> ( model -- gadget )
@@ -37,25 +38,14 @@ M: traceback-gadget pref-dim* drop { 550 600 } ;
 
     add-toolbar ;
 
-: <namestack-display> ( model -- gadget )
-    [ [ name>> namestack. ] when* ]
-    <pane-control> ;
-
-: <variables-gadget> ( model -- gadget )
-    <namestack-display>
-    <limited-scroller>
-        { 400 400 } >>min-dim
-        { 400 400 } >>max-dim ;
-
 : variables ( traceback -- )
-    model>> <variables-gadget>
-    "Dynamic variables" open-status-window ;
+    model>> [ dup [ name>> vars-in-scope ] when ] <filter> i:inspect-model ;
 
 : traceback-window ( continuation -- )
     <model> <traceback-gadget> "Traceback" open-status-window ;
 
 : inspect-continuation ( traceback -- )
-    control-value inspector ;
+    control-value i:inspector ;
 
 traceback-gadget "toolbar" f {
     { T{ key-down f f "v" } variables }