some changes for the lib builder and for its new subclass
authortz
Wed, 18 Feb 1998 21:33:53 +0100
changeset 648 d0724edba450
parent 647 4a16c0a3be56
child 649 1896945cf5d4
some changes for the lib builder and for its new subclass
ResourceSelectionBrowser.st
--- a/ResourceSelectionBrowser.st	Wed Feb 18 21:33:25 1998 +0100
+++ b/ResourceSelectionBrowser.st	Wed Feb 18 21:33:53 1998 +0100
@@ -73,6 +73,45 @@
         withResourceTypes: aResourceTypes
 ! !
 
+!ResourceSelectionBrowser class methodsFor:'callbacks - default'!
+
+treeViewChildren
+
+    ^[:aTreeItem| aTreeItem contents subclasses asSortedCollection: [:i1 :i2| i1 name < i2 name]]
+
+!
+
+treeViewContents
+
+    ^Smalltalk at: #Object
+
+
+
+
+!
+
+treeViewIcon
+
+    ^[:aTreeItem|  
+        aTreeItem contents subclasses notEmpty 
+        ifTrue: 
+        [
+            aTreeItem hide 
+                ifTrue:  [self iconHidingSubclasses] 
+                ifFalse: [self iconShowingSubclasses]] 
+        ifFalse: 
+        [
+            self iconClass
+        ]
+     ]
+
+!
+
+treeViewLabel
+
+    ^[:aTreeItem|aTreeItem contents name]
+! !
+
 !ResourceSelectionBrowser class methodsFor:'interface specs'!
 
 windowSpec
@@ -92,120 +131,125 @@
     ^
      
        #(#FullSpec
-          #'window:' 
+          #window: 
            #(#WindowSpec
-              #'name:' 'Resource Selection Browser'
-              #'layout:' #(#LayoutFrame 69 0 395 0 668 0 744 0)
-              #'label:' 'Resource Selection Browser'
-              #'min:' #(#Point 400 300)
-              #'max:' #(#Point 1152 864)
-              #'bounds:' #(#Rectangle 69 395 669 745)
-              #'usePreferredExtent:' false
+              #name: 'Resource Selection Browser'
+              #layout: #(#LayoutFrame 65 0 500 0 664 0 849 0)
+              #label: 'Resource Selection Browser'
+              #min: #(#Point 400 300)
+              #max: #(#Point 1152 864)
+              #bounds: #(#Rectangle 65 500 665 850)
+              #usePreferredExtent: false
           )
-          #'component:' 
+          #component: 
            #(#SpecCollection
-              #'collection:' 
+              #collection: 
                #(
                  #(#VariableHorizontalPanelSpec
-                    #'name:' 'variableHorizontalPanel'
-                    #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -40 1.0)
-                    #'component:' 
+                    #name: 'variableHorizontalPanel'
+                    #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -40 1.0)
+                    #component: 
                      #(#SpecCollection
-                        #'collection:' 
+                        #collection: 
                          #(
                            #(#ViewSpec
-                              #'name:' 'view1'
-                              #'component:' 
+                              #name: 'view1'
+                              #component: 
                                #(#SpecCollection
-                                  #'collection:' 
+                                  #collection: 
                                    #(
                                      #(#SelectionInTreeViewSpec
-                                        #'name:' 'listOfClassesView'
-                                        #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -22 1.0)
-                                        #'model:' #selectionOfClass
-                                        #'hasHorizontalScrollBar:' true
-                                        #'hasVerticalScrollBar:' true
-                                        #'miniScrollerHorizontal:' true
-                                        #'showDirectoryIndicatorForRoot:' false
-                                        #'showDirectoryIndicator:' true
-                                        #'valueChangeSelector:' #'classSelected:'
-                                        #'hierarchicalList:' #listOfClasses
-                                        #'contentsSelector:' #treeViewContents
-                                        #'labelSelector:' #treeViewLabel
-                                        #'childrenSelector:' #treeViewChildren
-                                        #'iconSelector:' #treeViewIcon
+                                        #name: 'listOfClassesView'
+                                        #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -22 1.0)
+                                        #model: #selectionOfClass
+                                        #hasHorizontalScrollBar: true
+                                        #hasVerticalScrollBar: true
+                                        #miniScrollerHorizontal: true
+                                        #showDirectoryIndicatorForRoot: false
+                                        #showDirectoryIndicator: true
+                                        #valueChangeSelector: #classSelected:
+                                        #hierarchicalList: #listOfClasses
+                                        #contentsSelector: #treeViewContents
+                                        #labelSelector: #treeViewLabel
+                                        #childrenSelector: #treeViewChildren
+                                        #iconSelector: #treeViewIcon
                                     )
                                      #(#InputFieldSpec
-                                        #'name:' 'classNameInputField'
-                                        #'layout:' #(#LayoutFrame 2 0.0 -22 1 -1 1.0 0 1)
-                                        #'model:' #valueOfClassName
+                                        #name: 'classNameInputField'
+                                        #layout: #(#LayoutFrame 2 0.0 -22 1 -1 1.0 0 1)
+                                        #model: #valueOfClassName
                                     )
                                   )
                               )
                           )
                            #(#ViewSpec
-                              #'name:' 'view2'
-                              #'component:' 
+                              #name: 'view2'
+                              #component: 
                                #(#SpecCollection
-                                  #'collection:' 
+                                  #collection: 
                                    #(
                                      #(#DataSetSpec
-                                        #'name:' 'resourcesDataSetView'
-                                        #'layout:' #(#LayoutFrame 2 0.0 0 0.0 -2 1.0 -22 1.0)
-                                        #'model:' #selectionOfResource
-                                        #'hasHorizontalScrollBar:' true
-                                        #'hasVerticalScrollBar:' true
-                                        #'miniScrollerHorizontal:' true
-                                        #'rowClassName:' 'ResourceSelectionBrowser::Row'
-                                        #'dataList:' #listOfResources
-                                        #'useIndex:' false
-                                        #'has3Dsepartors:' true
-                                        #'doubleClickSelector:' #resourceDoubleClicked
-                                        #'valueChangeSelector:' #resourceSelected
-                                        #'verticalSpacing:' 1
-                                        #'columns:' 
-                                         #(
-                                           #(#DataSetColumnSpec
-                                              #'width:' 20
-                                              #'height:' 20
-                                              #'printSelector:' #'iconOn:'
-                                              #'canSelect:' false
-                                          )
-                                           #(#DataSetColumnSpec
-                                              #'label:' 'Selector'
-                                              #'model:' #selector
-                                              #'canSelect:' false
-                                          )
-                                           #(#DataSetColumnSpec
-                                              #'label:' 'Resource'
-                                              #'model:' #resourceType
-                                              #'canSelect:' false
-                                          )
-                                        )
+                                        #name: 'resourcesDataSetView'
+                                        #layout: #(#LayoutFrame 2 0.0 0 0.0 -2 1.0 -22 1.0)
+                                        #model: #selectionOfResource
+                                        #hasHorizontalScrollBar: true
+                                        #hasVerticalScrollBar: true
+                                        #miniScrollerHorizontal: true
+                                        #rowClassName: 'ResourceSelectionBrowser::Row'
+                                        #dataList: #listOfResources
+                                        #useIndex: false
+                                        #has3Dsepartors: true
+                                        #doubleClickSelector: #resourceDoubleClicked
+                                        #columnHolder: #columnsOfDataSetView
+                                        #valueChangeSelector: #resourceSelected
+                                        #verticalSpacing: 1
+
                                     )
                                      #(#InputFieldSpec
-                                        #'name:' 'selectorInputField'
-                                        #'layout:' #(#LayoutFrame 2 0.0 -22 1 -2 1.0 0 1)
-                                        #'model:' #valueOfSelector
+                                        #name: 'selectorInputField'
+                                        #layout: #(#LayoutFrame 2 0.0 -22 1 -2 1.0 0 1)
+                                        #model: #valueOfSelector
                                     )
                                   )
                               )
                           )
                         )
                     )
-                    #'handles:' #(#Any 0.5 1.0)
+                    #handles: #(#Any 0.5 1.0)
                 )
                  #(#UISubSpecification
-                    #'name:' 'SubSpecification'
-                    #'layout:' #(#LayoutFrame 2 0.0 -32 1 -2 1.0 -8 1.0)
-                    #'majorKey:' #ToolApplicationModel
-                    #'minorKey:' #windowSpecForCommitWithoutChannels
+                    #name: 'SubSpecification'
+                    #layout: #(#LayoutFrame 2 0.0 -32 1 -2 1.0 -8 1.0)
+                    #majorKey: #ToolApplicationModel
+                    #minorKey: #windowSpecForCommitWithoutChannels
                 )
               )
           )
       )
 ! !
 
+!ResourceSelectionBrowser class methodsFor:'list specs'!
+
+columnsOfDataSetView
+
+  ^ #(#(#DataSetColumnSpec
+      #width: 20
+      #height: 20
+      #printSelector: #iconOn:
+      #canSelect: false
+  )
+   #(#DataSetColumnSpec
+      #label: 'Selector'
+      #model: #selector
+      #canSelect: false
+  )
+   (#DataSetColumnSpec
+      #label: 'Resource'
+      #model: #resourceType
+      #canSelect: false
+  ))
+! !
+
 !ResourceSelectionBrowser class methodsFor:'resources'!
 
 iconClass
@@ -258,6 +302,18 @@
 
 !ResourceSelectionBrowser methodsFor:'aspects'!
 
+columnsOfDataSetView
+
+    |holder|
+    (holder := builder bindingAt:#columnsOfDataSetView) isNil ifTrue:[
+        builder aspectAt:#columnsOfDataSetView put:(holder := List new).
+        holder addAll: (self class columnsOfDataSetView collect: [:i| i decodeAsLiteralArray]).
+    ].
+    ^ holder
+
+
+!
+
 listOfClasses
 
     |holder|
@@ -316,42 +372,21 @@
 
 !ResourceSelectionBrowser methodsFor:'callbacks - tree view'!
 
-treeViewChildren
-
-    ^[:aTreeItem| aTreeItem contents subclasses asSortedCollection: [:i1 :i2| i1 name < i2 name]]
-
-
-!
-
 treeViewContents
 
-    ^Smalltalk at: resourceSuperclass ? #Object
+    ^(Smalltalk at: resourceSuperclass) ? self class treeViewContents
 
 
 !
 
 treeViewIcon
 
-    ^[:aTreeItem|  
-        aTreeItem contents subclasses notEmpty 
-        ifTrue: 
-        [
-            aTreeItem hide 
-                ifTrue:  [self class iconHidingSubclasses] 
-                ifFalse: [self class iconShowingSubclasses]] 
-        ifFalse: 
-        [
-            self class iconClass
-        ]
-     ]
-
-
+    ^self class treeViewIcon
 !
 
 treeViewLabel
 
-    ^[:aTreeItem|aTreeItem contents name]
-
+    ^self class treeViewLabel
 
 ! !