#REFACTORING by cg
authorClaus Gittinger <cg@exept.de>
Wed, 25 Jan 2017 16:10:02 +0100
changeset 17265 60e2286680a6
parent 17264 7b4055c18979
child 17266 86241d1b895d
#REFACTORING by cg class: Tools::Inspector2Tab added: #toBrowseClass:selector:label: utility method
Tools__Inspector2Tab.st
--- a/Tools__Inspector2Tab.st	Wed Jan 25 16:06:50 2017 +0100
+++ b/Tools__Inspector2Tab.st	Wed Jan 25 16:10:02 2017 +0100
@@ -36,6 +36,59 @@
 "
 ! !
 
+!Inspector2Tab class methodsFor:'special instance creation'!
+
+toBrowseClass:aClass selector:initialSelectorOrNil label:label
+    "create and return an inspector tab containing
+     a browser on aClass (and optional initialSelector).
+     This is a utility to be used by inspector2TabXXX methods, which want to embed a clas browser."
+     
+    |makeView view|
+
+    makeView := 
+        [
+            |spec browser navigationState canvas|
+
+
+            view isNil ifTrue:[
+                "/ spec := #singleClassBrowserSpec.
+                spec := #multipleClassBrowserSpec.
+
+                browser := Tools::NewSystemBrowser new.
+                browser isEmbeddedBrowser:true.
+                browser createBuilder.
+
+                navigationState := browser navigationState.
+                navigationState canvasType:spec.
+                browser browserCanvasType:spec.
+
+                canvas := browser browserCanvas value.
+                canvas builder:(browser builder).
+                navigationState canvas:canvas.
+                "/ browser switchToClassHierarchyView.
+                "/ browser showInheritedMethods.
+
+                browser classListGenerator value:(aClass withAllSuperclasses).
+                browser sortByNameAndInheritance value:true.
+                browser
+                    selectClass:aClass;
+                    selectProtocol: (Tools::BrowserList nameListEntryForALL). 
+                initialSelectorOrNil notNil ifTrue:[
+                    browser selectMethod:(aClass compiledMethodAt:initialSelectorOrNil).
+                ].    
+                view := ApplicationSubView new client: browser spec: spec.
+                navigationState classListApplication addOwnerClasses value:false.
+            ].
+            view
+        ].
+
+    ^ self new
+            priority: 0;
+            label:label;
+            viewHolder: makeView;
+            yourself
+! !
+
 !Inspector2Tab methodsFor:'accessing'!
 
 application