*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 15 Feb 2006 20:38:03 +0100
changeset 6565 692939ea40f4
parent 6564 e33c56f5dac3
child 6566 266f28eaf4cd
*** empty log message ***
NewSystemBrowser.st
Tools__NewSystemBrowser.st
--- a/NewSystemBrowser.st	Wed Feb 15 18:26:13 2006 +0100
+++ b/NewSystemBrowser.st	Wed Feb 15 20:38:03 2006 +0100
@@ -831,6 +831,18 @@
         component: 
        (SpecCollection
           collection: (
+           (NoteBookViewSpec
+              name: 'EditorNoteBook'
+              layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
+              level: 0
+              model: selectedEditorNoteBookTabIndexHolder
+              menu: editorNoteBookListHolder
+              direction: right
+              useIndex: true
+              canvas: editorNoteBookCanvasHolder
+              keepCanvasAlive: true
+              postBuildCallback: postBuildEditorNoteBook:
+            )
            (ViewSpec
               name: 'InfoBox'
               layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
@@ -897,18 +909,6 @@
                
               )
             )
-           (NoteBookViewSpec
-              name: 'EditorNoteBook'
-              layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
-              level: 0
-              model: selectedEditorNoteBookTabIndexHolder
-              menu: editorNoteBookListHolder
-              direction: right
-              useIndex: true
-              canvas: editorNoteBookCanvasHolder
-              keepCanvasAlive: true
-              postBuildCallback: #postBuildEditorNoteBook:
-            )
            )
          
         )
@@ -10988,7 +10988,11 @@
 !
 
 selectedEditorNoteBookTabIndexHolder
-    ^ navigationState selectedEditorNoteBookTabIndexHolder.
+    |holder|
+
+    holder := navigationState selectedEditorNoteBookTabIndexHolder.
+    holder addDependent:self.
+    ^ holder
 !
 
 shortNamesInTabs
@@ -13346,6 +13350,10 @@
     self enqueueDelayedProtocolSelectionChanged
 !
 
+selectedEditorNoteBookTabIndexChanged
+    self updateSpecialCodeEditorVisibilityFor:(self theSingleSelectedMethod).
+!
+
 showClassAspect:codeAspect forClass:aClass
     |theNonMetaclass|
 
@@ -13418,6 +13426,24 @@
     self showInfo:text.
 !
 
+specialEditorCanvasForMethod:aMethod
+    |methodsResources|
+
+    (methodsResources := aMethod resources) notEmptyOrNil ifTrue:[
+        #( #image #menu #canvas #help #tableColumns ) do:[:triedResourceType |
+            |editorCanvas list|
+
+            (methodsResources includesKey:triedResourceType) ifTrue:[
+                editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
+                editorCanvas notNil ifTrue:[
+                    ^ editorCanvas
+                ].
+            ].
+        ].
+    ].
+    ^ nil
+!
+
 update:something with:aParameter from:changedObject
     |codeView mthd codeAspect isForAspect|
 
@@ -13447,6 +13473,11 @@
         self codeModified.
         ^ self.
     ].
+    changedObject == self selectedEditorNoteBookTabIndexHolder ifTrue:[
+        self selectedEditorNoteBookTabIndexChanged.
+        ^ self
+    ].
+
     changedObject == selectedBuffer ifTrue:[
         self enqueueDelayedLabelUpdate.
         self organizerModeForMenu changed.
@@ -13523,32 +13554,40 @@
 !
 
 updateSpecialCodeEditorVisibilityFor:aMethod
-    |methodsResources|
+    |hideEditor editorCanvas tabList|
+
+    hideEditor := true.
 
     aMethod notNil ifTrue:[
         self showSpecialResourceEditors value ifTrue:[
-            (methodsResources := aMethod resources) notEmptyOrNil ifTrue:[
-                #( #image #menu #canvas #help #tableColumns ) do:[:triedResourceType |
-                    |editorCanvas list|
-
-                    (methodsResources includesKey:triedResourceType) ifTrue:[
-                        editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
-                        editorCanvas notNil ifTrue:[
-                            list := Array with:'Source' with:(triedResourceType asUppercaseFirst).
-                            self editorNoteBookListHolder value:list.
-                            self editorNoteBookCanvasHolder value:editorCanvas.
-                            editorCanvas application
-                                masterApplication:self;
-                                loadFromClass:(aMethod mclass theNonMetaclass) 
-                                andSelector:(aMethod selector).
-                            ^ self. 
-                        ].
-                    ].
-                ].
-            ].
-        ].
-    ].
-    self editorNoteBookListHolder value:#().
+            editorCanvas := self specialEditorCanvasForMethod:aMethod.
+            editorCanvas notNil ifTrue:[
+                hideEditor := false.
+
+                tabList := Array 
+                            with:'Source' 
+                            with:(editorCanvas application class nameWithoutPrefix asUppercaseFirst).
+
+                tabList = self editorNoteBookListHolder value ifFalse:[
+                    self editorNoteBookListHolder value:tabList.
+                ].
+                self selectedEditorNoteBookTabIndexHolder value == 2 ifTrue:[
+                    self editorNoteBookCanvasHolder value:editorCanvas.
+                    editorCanvas application
+                        masterApplication:self;
+                        loadFromClass:(aMethod mclass theNonMetaclass) 
+                        andSelector:(aMethod selector).
+                    ^ self. 
+                ].
+            ].
+        ].
+    ].
+    hideEditor ifTrue:[ 
+        self selectedEditorNoteBookTabIndexHolder setValue:0. 
+        self editorNoteBookListHolder value:#(). 
+    ] ifFalse:[
+        self selectedEditorNoteBookTabIndexHolder value:1. 
+    ].
     self editorNoteBookCanvasHolder value:(navigationState scrollableCodeView).
 !
 
@@ -37207,7 +37246,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.905 2006-02-15 17:26:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Attic/NewSystemBrowser.st,v 1.906 2006-02-15 19:38:03 cg Exp $'
 ! !
 
 NewSystemBrowser initialize!
--- a/Tools__NewSystemBrowser.st	Wed Feb 15 18:26:13 2006 +0100
+++ b/Tools__NewSystemBrowser.st	Wed Feb 15 20:38:03 2006 +0100
@@ -831,6 +831,18 @@
         component: 
        (SpecCollection
           collection: (
+           (NoteBookViewSpec
+              name: 'EditorNoteBook'
+              layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
+              level: 0
+              model: selectedEditorNoteBookTabIndexHolder
+              menu: editorNoteBookListHolder
+              direction: right
+              useIndex: true
+              canvas: editorNoteBookCanvasHolder
+              keepCanvasAlive: true
+              postBuildCallback: postBuildEditorNoteBook:
+            )
            (ViewSpec
               name: 'InfoBox'
               layout: (LayoutFrame 0 0 -24 1 0 1 0 1)
@@ -897,18 +909,6 @@
                
               )
             )
-           (NoteBookViewSpec
-              name: 'EditorNoteBook'
-              layout: (LayoutFrame 0 0 0 0 0 1 -25 1)
-              level: 0
-              model: selectedEditorNoteBookTabIndexHolder
-              menu: editorNoteBookListHolder
-              direction: right
-              useIndex: true
-              canvas: editorNoteBookCanvasHolder
-              keepCanvasAlive: true
-              postBuildCallback: #postBuildEditorNoteBook:
-            )
            )
          
         )
@@ -10988,7 +10988,11 @@
 !
 
 selectedEditorNoteBookTabIndexHolder
-    ^ navigationState selectedEditorNoteBookTabIndexHolder.
+    |holder|
+
+    holder := navigationState selectedEditorNoteBookTabIndexHolder.
+    holder addDependent:self.
+    ^ holder
 !
 
 shortNamesInTabs
@@ -13346,6 +13350,10 @@
     self enqueueDelayedProtocolSelectionChanged
 !
 
+selectedEditorNoteBookTabIndexChanged
+    self updateSpecialCodeEditorVisibilityFor:(self theSingleSelectedMethod).
+!
+
 showClassAspect:codeAspect forClass:aClass
     |theNonMetaclass|
 
@@ -13418,6 +13426,24 @@
     self showInfo:text.
 !
 
+specialEditorCanvasForMethod:aMethod
+    |methodsResources|
+
+    (methodsResources := aMethod resources) notEmptyOrNil ifTrue:[
+        #( #image #menu #canvas #help #tableColumns ) do:[:triedResourceType |
+            |editorCanvas list|
+
+            (methodsResources includesKey:triedResourceType) ifTrue:[
+                editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
+                editorCanvas notNil ifTrue:[
+                    ^ editorCanvas
+                ].
+            ].
+        ].
+    ].
+    ^ nil
+!
+
 update:something with:aParameter from:changedObject
     |codeView mthd codeAspect isForAspect|
 
@@ -13447,6 +13473,11 @@
         self codeModified.
         ^ self.
     ].
+    changedObject == self selectedEditorNoteBookTabIndexHolder ifTrue:[
+        self selectedEditorNoteBookTabIndexChanged.
+        ^ self
+    ].
+
     changedObject == selectedBuffer ifTrue:[
         self enqueueDelayedLabelUpdate.
         self organizerModeForMenu changed.
@@ -13523,32 +13554,40 @@
 !
 
 updateSpecialCodeEditorVisibilityFor:aMethod
-    |methodsResources|
+    |hideEditor editorCanvas tabList|
+
+    hideEditor := true.
 
     aMethod notNil ifTrue:[
         self showSpecialResourceEditors value ifTrue:[
-            (methodsResources := aMethod resources) notEmptyOrNil ifTrue:[
-                #( #image #menu #canvas #help #tableColumns ) do:[:triedResourceType |
-                    |editorCanvas list|
-
-                    (methodsResources includesKey:triedResourceType) ifTrue:[
-                        editorCanvas := navigationState specialEditorCanvasForResourceType:triedResourceType.
-                        editorCanvas notNil ifTrue:[
-                            list := Array with:'Source' with:(triedResourceType asUppercaseFirst).
-                            self editorNoteBookListHolder value:list.
-                            self editorNoteBookCanvasHolder value:editorCanvas.
-                            editorCanvas application
-                                masterApplication:self;
-                                loadFromClass:(aMethod mclass theNonMetaclass) 
-                                andSelector:(aMethod selector).
-                            ^ self. 
-                        ].
-                    ].
-                ].
-            ].
-        ].
-    ].
-    self editorNoteBookListHolder value:#().
+            editorCanvas := self specialEditorCanvasForMethod:aMethod.
+            editorCanvas notNil ifTrue:[
+                hideEditor := false.
+
+                tabList := Array 
+                            with:'Source' 
+                            with:(editorCanvas application class nameWithoutPrefix asUppercaseFirst).
+
+                tabList = self editorNoteBookListHolder value ifFalse:[
+                    self editorNoteBookListHolder value:tabList.
+                ].
+                self selectedEditorNoteBookTabIndexHolder value == 2 ifTrue:[
+                    self editorNoteBookCanvasHolder value:editorCanvas.
+                    editorCanvas application
+                        masterApplication:self;
+                        loadFromClass:(aMethod mclass theNonMetaclass) 
+                        andSelector:(aMethod selector).
+                    ^ self. 
+                ].
+            ].
+        ].
+    ].
+    hideEditor ifTrue:[ 
+        self selectedEditorNoteBookTabIndexHolder setValue:0. 
+        self editorNoteBookListHolder value:#(). 
+    ] ifFalse:[
+        self selectedEditorNoteBookTabIndexHolder value:1. 
+    ].
     self editorNoteBookCanvasHolder value:(navigationState scrollableCodeView).
 !
 
@@ -37207,7 +37246,7 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.905 2006-02-15 17:26:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.906 2006-02-15 19:38:03 cg Exp $'
 ! !
 
 NewSystemBrowser initialize!