#REFACTORING by cg
class: Tools::Inspector2Tab
added: #toBrowseClass:selector:label:
utility method
--- 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