# HG changeset patch # User tz # Date 887834033 -3600 # Node ID d0724edba450ade2d375994ac507f5376ad11be5 # Parent 4a16c0a3be56a7fc64d7b7755079ecf7ba5a6728 some changes for the lib builder and for its new subclass diff -r 4a16c0a3be56 -r d0724edba450 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 ! !