--- 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
! !