ResourceSelectionBrowser.st
author tz
Mon, 19 Jan 1998 12:08:57 +0100
changeset 436 07be1c96bb58
parent 435 1a9f248ed815
child 463 947f89198464
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
425
cf47d420764a initial checkin
tz
parents:
diff changeset
     1
"
cf47d420764a initial checkin
tz
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG / Thomas Zwick
cf47d420764a initial checkin
tz
parents:
diff changeset
     3
              All Rights Reserved
cf47d420764a initial checkin
tz
parents:
diff changeset
     4
cf47d420764a initial checkin
tz
parents:
diff changeset
     5
 This software is furnished under a license and may be used
cf47d420764a initial checkin
tz
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
cf47d420764a initial checkin
tz
parents:
diff changeset
     7
 inclusion of the above copyright notice. This software may not
cf47d420764a initial checkin
tz
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
cf47d420764a initial checkin
tz
parents:
diff changeset
     9
 other person. No title to or ownership of the software is
cf47d420764a initial checkin
tz
parents:
diff changeset
    10
 hereby transferred.
cf47d420764a initial checkin
tz
parents:
diff changeset
    11
"
cf47d420764a initial checkin
tz
parents:
diff changeset
    12
cf47d420764a initial checkin
tz
parents:
diff changeset
    13
cf47d420764a initial checkin
tz
parents:
diff changeset
    14
SelectionBrowser subclass:#ResourceSelectionBrowser
cf47d420764a initial checkin
tz
parents:
diff changeset
    15
	instanceVariableNames:'resourceMethod resourceClass resourceSuperclass resourceTypes'
cf47d420764a initial checkin
tz
parents:
diff changeset
    16
	classVariableNames:''
cf47d420764a initial checkin
tz
parents:
diff changeset
    17
	poolDictionaries:''
cf47d420764a initial checkin
tz
parents:
diff changeset
    18
	category:'Interface-Advanced-Tools'
cf47d420764a initial checkin
tz
parents:
diff changeset
    19
!
cf47d420764a initial checkin
tz
parents:
diff changeset
    20
cf47d420764a initial checkin
tz
parents:
diff changeset
    21
!ResourceSelectionBrowser class methodsFor:'documentation'!
cf47d420764a initial checkin
tz
parents:
diff changeset
    22
cf47d420764a initial checkin
tz
parents:
diff changeset
    23
copyright
cf47d420764a initial checkin
tz
parents:
diff changeset
    24
"
cf47d420764a initial checkin
tz
parents:
diff changeset
    25
 COPYRIGHT (c) 1997 by eXept Software AG / Thomas Zwick
cf47d420764a initial checkin
tz
parents:
diff changeset
    26
              All Rights Reserved
cf47d420764a initial checkin
tz
parents:
diff changeset
    27
cf47d420764a initial checkin
tz
parents:
diff changeset
    28
 This software is furnished under a license and may be used
cf47d420764a initial checkin
tz
parents:
diff changeset
    29
 only in accordance with the terms of that license and with the
cf47d420764a initial checkin
tz
parents:
diff changeset
    30
 inclusion of the above copyright notice. This software may not
cf47d420764a initial checkin
tz
parents:
diff changeset
    31
 be provided or otherwise made available to, or used by, any
cf47d420764a initial checkin
tz
parents:
diff changeset
    32
 other person. No title to or ownership of the software is
cf47d420764a initial checkin
tz
parents:
diff changeset
    33
 hereby transferred.
cf47d420764a initial checkin
tz
parents:
diff changeset
    34
"
cf47d420764a initial checkin
tz
parents:
diff changeset
    35
cf47d420764a initial checkin
tz
parents:
diff changeset
    36
!
cf47d420764a initial checkin
tz
parents:
diff changeset
    37
cf47d420764a initial checkin
tz
parents:
diff changeset
    38
documentation
cf47d420764a initial checkin
tz
parents:
diff changeset
    39
"
cf47d420764a initial checkin
tz
parents:
diff changeset
    40
    documentation to be added.
cf47d420764a initial checkin
tz
parents:
diff changeset
    41
"
cf47d420764a initial checkin
tz
parents:
diff changeset
    42
!
cf47d420764a initial checkin
tz
parents:
diff changeset
    43
cf47d420764a initial checkin
tz
parents:
diff changeset
    44
history
cf47d420764a initial checkin
tz
parents:
diff changeset
    45
    "Created: / 10.1.1998 / 10:59:18 / tz"
cf47d420764a initial checkin
tz
parents:
diff changeset
    46
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
    47
cf47d420764a initial checkin
tz
parents:
diff changeset
    48
!ResourceSelectionBrowser class methodsFor:'instance creation'!
cf47d420764a initial checkin
tz
parents:
diff changeset
    49
cf47d420764a initial checkin
tz
parents:
diff changeset
    50
request: aTitle onSuperclass: aSuperclass andClass: aClass andSelector: aSelector withResourceTypes: aResourceTypes
cf47d420764a initial checkin
tz
parents:
diff changeset
    51
cf47d420764a initial checkin
tz
parents:
diff changeset
    52
    "self
cf47d420764a initial checkin
tz
parents:
diff changeset
    53
        request: 'Select A Resource Selector'
cf47d420764a initial checkin
tz
parents:
diff changeset
    54
        onSuperclass: #ApplicationModel 
cf47d420764a initial checkin
tz
parents:
diff changeset
    55
        andClass: #ToolApplicationModel 
cf47d420764a initial checkin
tz
parents:
diff changeset
    56
        andSelector: #saveIcon 
cf47d420764a initial checkin
tz
parents:
diff changeset
    57
        withResourceTypes: #(canvas menu image) 
cf47d420764a initial checkin
tz
parents:
diff changeset
    58
    "
cf47d420764a initial checkin
tz
parents:
diff changeset
    59
cf47d420764a initial checkin
tz
parents:
diff changeset
    60
    ^self new
cf47d420764a initial checkin
tz
parents:
diff changeset
    61
        title: aTitle;
cf47d420764a initial checkin
tz
parents:
diff changeset
    62
        openOnSuperclass: aSuperclass
cf47d420764a initial checkin
tz
parents:
diff changeset
    63
        andClass: aClass
cf47d420764a initial checkin
tz
parents:
diff changeset
    64
        andSelector: aSelector
cf47d420764a initial checkin
tz
parents:
diff changeset
    65
        withResourceTypes: aResourceTypes
cf47d420764a initial checkin
tz
parents:
diff changeset
    66
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
    67
cf47d420764a initial checkin
tz
parents:
diff changeset
    68
!ResourceSelectionBrowser class methodsFor:'interface specs'!
cf47d420764a initial checkin
tz
parents:
diff changeset
    69
cf47d420764a initial checkin
tz
parents:
diff changeset
    70
windowSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
    71
    "this window spec was automatically generated by the ST/X UIPainter"
cf47d420764a initial checkin
tz
parents:
diff changeset
    72
cf47d420764a initial checkin
tz
parents:
diff changeset
    73
    "do not manually edit this - the painter/builder may not be able to
cf47d420764a initial checkin
tz
parents:
diff changeset
    74
     handle the specification if its corrupted."
cf47d420764a initial checkin
tz
parents:
diff changeset
    75
cf47d420764a initial checkin
tz
parents:
diff changeset
    76
    "
cf47d420764a initial checkin
tz
parents:
diff changeset
    77
     UIPainter new openOnClass:ResourceSelectionBrowser andSelector:#windowSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
    78
     ResourceSelectionBrowser new openInterface:#windowSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
    79
    "
cf47d420764a initial checkin
tz
parents:
diff changeset
    80
    "ResourceSelectionBrowser open"
cf47d420764a initial checkin
tz
parents:
diff changeset
    81
cf47d420764a initial checkin
tz
parents:
diff changeset
    82
    <resource: #canvas>
cf47d420764a initial checkin
tz
parents:
diff changeset
    83
cf47d420764a initial checkin
tz
parents:
diff changeset
    84
    ^
cf47d420764a initial checkin
tz
parents:
diff changeset
    85
     
cf47d420764a initial checkin
tz
parents:
diff changeset
    86
       #(#FullSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
    87
          #'window:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
    88
           #(#WindowSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
    89
              #'name:' 'Resource Browser'
436
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
    90
              #'layout:' #(#LayoutFrame 279 0 387 0 690 0 686 0)
425
cf47d420764a initial checkin
tz
parents:
diff changeset
    91
              #'label:' 'Resource Browser'
cf47d420764a initial checkin
tz
parents:
diff changeset
    92
              #'min:' #(#Point 400 300)
cf47d420764a initial checkin
tz
parents:
diff changeset
    93
              #'max:' #(#Point 1152 864)
436
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
    94
              #'bounds:' #(#Rectangle 279 387 691 687)
425
cf47d420764a initial checkin
tz
parents:
diff changeset
    95
              #'usePreferredExtent:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
    96
          )
cf47d420764a initial checkin
tz
parents:
diff changeset
    97
          #'component:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
    98
           #(#SpecCollection
cf47d420764a initial checkin
tz
parents:
diff changeset
    99
              #'collection:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   100
               #(
cf47d420764a initial checkin
tz
parents:
diff changeset
   101
                 #(#VariableHorizontalPanelSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   102
                    #'name:' 'variableHorizontalPanel'
cf47d420764a initial checkin
tz
parents:
diff changeset
   103
                    #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -40 1.0)
cf47d420764a initial checkin
tz
parents:
diff changeset
   104
                    #'component:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   105
                     #(#SpecCollection
cf47d420764a initial checkin
tz
parents:
diff changeset
   106
                        #'collection:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   107
                         #(
cf47d420764a initial checkin
tz
parents:
diff changeset
   108
                           #(#ViewSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   109
                              #'name:' 'view1'
cf47d420764a initial checkin
tz
parents:
diff changeset
   110
                              #'component:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   111
                               #(#SpecCollection
cf47d420764a initial checkin
tz
parents:
diff changeset
   112
                                  #'collection:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   113
                                   #(
cf47d420764a initial checkin
tz
parents:
diff changeset
   114
                                     #(#SelectionInTreeViewSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   115
                                        #'name:' 'listOfClassesView'
cf47d420764a initial checkin
tz
parents:
diff changeset
   116
                                        #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
cf47d420764a initial checkin
tz
parents:
diff changeset
   117
                                        #'model:' #selectionOfClass
cf47d420764a initial checkin
tz
parents:
diff changeset
   118
                                        #'hasHorizontalScrollBar:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   119
                                        #'hasVerticalScrollBar:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   120
                                        #'miniScrollerHorizontal:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   121
                                        #'showRoot:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
   122
                                        #'valueChangeSelector:' #'classSelected:'
cf47d420764a initial checkin
tz
parents:
diff changeset
   123
                                        #'hierarchicalList:' #listOfClasses
cf47d420764a initial checkin
tz
parents:
diff changeset
   124
                                    )
cf47d420764a initial checkin
tz
parents:
diff changeset
   125
                                  )
cf47d420764a initial checkin
tz
parents:
diff changeset
   126
                              )
cf47d420764a initial checkin
tz
parents:
diff changeset
   127
                              #'level:' -1
cf47d420764a initial checkin
tz
parents:
diff changeset
   128
                          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   129
                           #(#ViewSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   130
                              #'name:' 'view2'
cf47d420764a initial checkin
tz
parents:
diff changeset
   131
                              #'component:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   132
                               #(#SpecCollection
cf47d420764a initial checkin
tz
parents:
diff changeset
   133
                                  #'collection:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   134
                                   #(
cf47d420764a initial checkin
tz
parents:
diff changeset
   135
                                     #(#DataSetSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   136
                                        #'name:' 'resourcesDataSetView'
cf47d420764a initial checkin
tz
parents:
diff changeset
   137
                                        #'layout:' #(#LayoutFrame 2 0.0 0 0.0 2 1.0 -22 1.0)
cf47d420764a initial checkin
tz
parents:
diff changeset
   138
                                        #'model:' #selectionOfResource
cf47d420764a initial checkin
tz
parents:
diff changeset
   139
                                        #'hasHorizontalScrollBar:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   140
                                        #'hasVerticalScrollBar:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   141
                                        #'miniScrollerHorizontal:' true
cf47d420764a initial checkin
tz
parents:
diff changeset
   142
                                        #'dataList:' #listOfResources
cf47d420764a initial checkin
tz
parents:
diff changeset
   143
                                        #'useIndex:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
   144
                                        #'doubleClickSelector:' #resourceDoubleClicked
cf47d420764a initial checkin
tz
parents:
diff changeset
   145
                                        #'valueChangeSelector:' #resourceSelected
cf47d420764a initial checkin
tz
parents:
diff changeset
   146
                                        #'verticalSpacing:' 1
cf47d420764a initial checkin
tz
parents:
diff changeset
   147
                                        #'columns:' 
cf47d420764a initial checkin
tz
parents:
diff changeset
   148
                                         #(
cf47d420764a initial checkin
tz
parents:
diff changeset
   149
                                           #(#DataSetColumnSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   150
                                              #'width:' 20
cf47d420764a initial checkin
tz
parents:
diff changeset
   151
                                              #'height:' 24
cf47d420764a initial checkin
tz
parents:
diff changeset
   152
                                              #'printSelector:' #'iconOn:'
cf47d420764a initial checkin
tz
parents:
diff changeset
   153
                                              #'canSelect:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
   154
                                          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   155
                                           #(#DataSetColumnSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   156
                                              #'label:' 'Selector'
cf47d420764a initial checkin
tz
parents:
diff changeset
   157
                                              #'model:' #selector
cf47d420764a initial checkin
tz
parents:
diff changeset
   158
                                              #'canSelect:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
   159
                                          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   160
                                           #(#DataSetColumnSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   161
                                              #'label:' 'Resource'
cf47d420764a initial checkin
tz
parents:
diff changeset
   162
                                              #'model:' #resourceType
cf47d420764a initial checkin
tz
parents:
diff changeset
   163
                                              #'canSelect:' false
cf47d420764a initial checkin
tz
parents:
diff changeset
   164
                                          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   165
                                        )
cf47d420764a initial checkin
tz
parents:
diff changeset
   166
                                    )
cf47d420764a initial checkin
tz
parents:
diff changeset
   167
                                     #(#InputFieldSpec
cf47d420764a initial checkin
tz
parents:
diff changeset
   168
                                        #'name:' 'selectorInputField'
cf47d420764a initial checkin
tz
parents:
diff changeset
   169
                                        #'layout:' #(#LayoutFrame 2 0.0 -22 1 2 1.0 0 1)
cf47d420764a initial checkin
tz
parents:
diff changeset
   170
                                        #'model:' #valueOfSelector
cf47d420764a initial checkin
tz
parents:
diff changeset
   171
                                    )
cf47d420764a initial checkin
tz
parents:
diff changeset
   172
                                  )
cf47d420764a initial checkin
tz
parents:
diff changeset
   173
                              )
cf47d420764a initial checkin
tz
parents:
diff changeset
   174
                              #'level:' -1
cf47d420764a initial checkin
tz
parents:
diff changeset
   175
                          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   176
                        )
cf47d420764a initial checkin
tz
parents:
diff changeset
   177
                    )
cf47d420764a initial checkin
tz
parents:
diff changeset
   178
                    #'handles:' #(#Any 0.5 1.0)
cf47d420764a initial checkin
tz
parents:
diff changeset
   179
                )
436
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
   180
                 #(#UISubSpecification
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
   181
                    #'name:' 'SubSpecification'
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
   182
                    #'layout:' #(#LayoutFrame 2 0.0 -32 1 -2 1.0 -8 1.0)
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
   183
                    #'majorKey:' #ToolApplicationModel
07be1c96bb58 *** empty log message ***
tz
parents: 435
diff changeset
   184
                    #'minorKey:' #windowSpecForCommitWithoutChannels
425
cf47d420764a initial checkin
tz
parents:
diff changeset
   185
                )
cf47d420764a initial checkin
tz
parents:
diff changeset
   186
              )
cf47d420764a initial checkin
tz
parents:
diff changeset
   187
          )
cf47d420764a initial checkin
tz
parents:
diff changeset
   188
      )
cf47d420764a initial checkin
tz
parents:
diff changeset
   189
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   190
cf47d420764a initial checkin
tz
parents:
diff changeset
   191
!ResourceSelectionBrowser methodsFor:'accessing - views'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   192
cf47d420764a initial checkin
tz
parents:
diff changeset
   193
listOfClassesView
cf47d420764a initial checkin
tz
parents:
diff changeset
   194
cf47d420764a initial checkin
tz
parents:
diff changeset
   195
    ^builder componentAt: #listOfClassesView
cf47d420764a initial checkin
tz
parents:
diff changeset
   196
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   197
cf47d420764a initial checkin
tz
parents:
diff changeset
   198
!ResourceSelectionBrowser methodsFor:'aspects'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   199
cf47d420764a initial checkin
tz
parents:
diff changeset
   200
listOfClasses
cf47d420764a initial checkin
tz
parents:
diff changeset
   201
cf47d420764a initial checkin
tz
parents:
diff changeset
   202
    |holder|
cf47d420764a initial checkin
tz
parents:
diff changeset
   203
    (holder := builder bindingAt:#listOfClasses) isNil ifTrue:[
cf47d420764a initial checkin
tz
parents:
diff changeset
   204
        builder aspectAt:#listOfClasses put:
cf47d420764a initial checkin
tz
parents:
diff changeset
   205
            (holder := 
cf47d420764a initial checkin
tz
parents:
diff changeset
   206
                (TreeItem name: resourceSuperclass)
cf47d420764a initial checkin
tz
parents:
diff changeset
   207
                    children: (OrderedCollection with:
cf47d420764a initial checkin
tz
parents:
diff changeset
   208
                        (TreeItem newAsTreeFromSmalltalkClass: (Smalltalk at:resourceSuperclass))))
cf47d420764a initial checkin
tz
parents:
diff changeset
   209
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   210
    ^ holder
cf47d420764a initial checkin
tz
parents:
diff changeset
   211
cf47d420764a initial checkin
tz
parents:
diff changeset
   212
cf47d420764a initial checkin
tz
parents:
diff changeset
   213
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   214
cf47d420764a initial checkin
tz
parents:
diff changeset
   215
listOfResources
cf47d420764a initial checkin
tz
parents:
diff changeset
   216
cf47d420764a initial checkin
tz
parents:
diff changeset
   217
    |holder|
cf47d420764a initial checkin
tz
parents:
diff changeset
   218
    (holder := builder bindingAt:#listOfResources) isNil ifTrue:[
cf47d420764a initial checkin
tz
parents:
diff changeset
   219
        builder aspectAt:#listOfResources put:(holder :=  List new).
cf47d420764a initial checkin
tz
parents:
diff changeset
   220
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   221
    ^ holder
cf47d420764a initial checkin
tz
parents:
diff changeset
   222
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   223
cf47d420764a initial checkin
tz
parents:
diff changeset
   224
selectionOfClass
cf47d420764a initial checkin
tz
parents:
diff changeset
   225
cf47d420764a initial checkin
tz
parents:
diff changeset
   226
    |holder|
cf47d420764a initial checkin
tz
parents:
diff changeset
   227
    (holder := builder bindingAt:#selectionOfClass) isNil ifTrue:[
cf47d420764a initial checkin
tz
parents:
diff changeset
   228
        builder aspectAt:#selectionOfClass put:(holder :=  ValueHolder new).
cf47d420764a initial checkin
tz
parents:
diff changeset
   229
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   230
    ^ holder
cf47d420764a initial checkin
tz
parents:
diff changeset
   231
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   232
cf47d420764a initial checkin
tz
parents:
diff changeset
   233
selectionOfResource
cf47d420764a initial checkin
tz
parents:
diff changeset
   234
cf47d420764a initial checkin
tz
parents:
diff changeset
   235
    |holder|
cf47d420764a initial checkin
tz
parents:
diff changeset
   236
    (holder := builder bindingAt:#selectionOfResource) isNil ifTrue:[
cf47d420764a initial checkin
tz
parents:
diff changeset
   237
        builder aspectAt:#selectionOfResource put:(holder :=  '' asValue).
cf47d420764a initial checkin
tz
parents:
diff changeset
   238
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   239
    ^ holder
cf47d420764a initial checkin
tz
parents:
diff changeset
   240
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   241
cf47d420764a initial checkin
tz
parents:
diff changeset
   242
valueOfSelector
cf47d420764a initial checkin
tz
parents:
diff changeset
   243
cf47d420764a initial checkin
tz
parents:
diff changeset
   244
    |holder|
cf47d420764a initial checkin
tz
parents:
diff changeset
   245
    (holder := builder bindingAt:#valueOfSelector) isNil ifTrue:[
cf47d420764a initial checkin
tz
parents:
diff changeset
   246
        builder aspectAt:#valueOfSelector put:(holder :=  '' asValue).
cf47d420764a initial checkin
tz
parents:
diff changeset
   247
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   248
    ^ holder
cf47d420764a initial checkin
tz
parents:
diff changeset
   249
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   250
cf47d420764a initial checkin
tz
parents:
diff changeset
   251
!ResourceSelectionBrowser methodsFor:'callbacks'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   252
cf47d420764a initial checkin
tz
parents:
diff changeset
   253
classSelected: anIndex
cf47d420764a initial checkin
tz
parents:
diff changeset
   254
    
cf47d420764a initial checkin
tz
parents:
diff changeset
   255
    self selectionOfClass value isNil ifTrue: [^nil].
cf47d420764a initial checkin
tz
parents:
diff changeset
   256
    self withWaitCursorDo:
cf47d420764a initial checkin
tz
parents:
diff changeset
   257
    [
cf47d420764a initial checkin
tz
parents:
diff changeset
   258
        |clsName|
cf47d420764a initial checkin
tz
parents:
diff changeset
   259
        resourceTypes isNil ifTrue: [resourceTypes := #(canvas menu image fileImage)].
cf47d420764a initial checkin
tz
parents:
diff changeset
   260
        clsName := self listOfClassesView list at: anIndex.
cf47d420764a initial checkin
tz
parents:
diff changeset
   261
        self class lastSelection: clsName.
cf47d420764a initial checkin
tz
parents:
diff changeset
   262
        self listOfResources contents:
cf47d420764a initial checkin
tz
parents:
diff changeset
   263
            ((Smalltalk at: clsName) 
cf47d420764a initial checkin
tz
parents:
diff changeset
   264
                class methodDictionary
cf47d420764a initial checkin
tz
parents:
diff changeset
   265
                asOrderedCollection select: 
cf47d420764a initial checkin
tz
parents:
diff changeset
   266
                    [:m| m resources notNil and: [resourceTypes includes: m resourceType]]).
cf47d420764a initial checkin
tz
parents:
diff changeset
   267
    ]
cf47d420764a initial checkin
tz
parents:
diff changeset
   268
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   269
cf47d420764a initial checkin
tz
parents:
diff changeset
   270
resourceDoubleClicked
cf47d420764a initial checkin
tz
parents:
diff changeset
   271
cf47d420764a initial checkin
tz
parents:
diff changeset
   272
    resourceMethod := self selectionOfResource value.
cf47d420764a initial checkin
tz
parents:
diff changeset
   273
    accept value: true.
cf47d420764a initial checkin
tz
parents:
diff changeset
   274
    self close
cf47d420764a initial checkin
tz
parents:
diff changeset
   275
!
cf47d420764a initial checkin
tz
parents:
diff changeset
   276
cf47d420764a initial checkin
tz
parents:
diff changeset
   277
resourceSelected
cf47d420764a initial checkin
tz
parents:
diff changeset
   278
cf47d420764a initial checkin
tz
parents:
diff changeset
   279
    resourceMethod := self selectionOfResource value.
cf47d420764a initial checkin
tz
parents:
diff changeset
   280
    self valueOfSelector value: self selectionOfResource value selector
cf47d420764a initial checkin
tz
parents:
diff changeset
   281
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   282
cf47d420764a initial checkin
tz
parents:
diff changeset
   283
!ResourceSelectionBrowser methodsFor:'initialization'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   284
cf47d420764a initial checkin
tz
parents:
diff changeset
   285
postBuildWith:aBuilder
cf47d420764a initial checkin
tz
parents:
diff changeset
   286
cf47d420764a initial checkin
tz
parents:
diff changeset
   287
    self listOfClassesView selectFromListOfNames: 
cf47d420764a initial checkin
tz
parents:
diff changeset
   288
            (((Smalltalk at: self class lastSelection ? resourceClass ifAbsent: [Object]))
cf47d420764a initial checkin
tz
parents:
diff changeset
   289
                withAllSuperclasses reverse collect: [:cls| cls name asString]).
cf47d420764a initial checkin
tz
parents:
diff changeset
   290
cf47d420764a initial checkin
tz
parents:
diff changeset
   291
    ^super postBuildWith:aBuilder
cf47d420764a initial checkin
tz
parents:
diff changeset
   292
cf47d420764a initial checkin
tz
parents:
diff changeset
   293
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   294
cf47d420764a initial checkin
tz
parents:
diff changeset
   295
!ResourceSelectionBrowser methodsFor:'instance creation'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   296
cf47d420764a initial checkin
tz
parents:
diff changeset
   297
openOnSuperclass: aSuperclassOrSymbol andClass: aClassOrSymbol andSelector: aSelector withResourceTypes: aResourceTypes
cf47d420764a initial checkin
tz
parents:
diff changeset
   298
cf47d420764a initial checkin
tz
parents:
diff changeset
   299
    |cls sel|
cf47d420764a initial checkin
tz
parents:
diff changeset
   300
    resourceTypes := aResourceTypes.
cf47d420764a initial checkin
tz
parents:
diff changeset
   301
    resourceSuperclass := aSuperclassOrSymbol isClass ifTrue: [aSuperclassOrSymbol name] ifFalse: [aSuperclassOrSymbol].
cf47d420764a initial checkin
tz
parents:
diff changeset
   302
    resourceClass := aClassOrSymbol isClass ifTrue: [aClassOrSymbol name] ifFalse: [aClassOrSymbol].
cf47d420764a initial checkin
tz
parents:
diff changeset
   303
    self valueOfSelector value: aSelector.
cf47d420764a initial checkin
tz
parents:
diff changeset
   304
cf47d420764a initial checkin
tz
parents:
diff changeset
   305
    self open. 
cf47d420764a initial checkin
tz
parents:
diff changeset
   306
    (self selectionOfClass value notNil and: [
cf47d420764a initial checkin
tz
parents:
diff changeset
   307
    (cls := Smalltalk at: self selectionOfClass value name) isClass &
cf47d420764a initial checkin
tz
parents:
diff changeset
   308
    (cls class implements: (sel := self valueOfSelector value)) &
cf47d420764a initial checkin
tz
parents:
diff changeset
   309
    accept value])
cf47d420764a initial checkin
tz
parents:
diff changeset
   310
    ifTrue:
cf47d420764a initial checkin
tz
parents:
diff changeset
   311
    [
cf47d420764a initial checkin
tz
parents:
diff changeset
   312
        ^cls name, ' ', sel
cf47d420764a initial checkin
tz
parents:
diff changeset
   313
    ].
cf47d420764a initial checkin
tz
parents:
diff changeset
   314
    ^nil
cf47d420764a initial checkin
tz
parents:
diff changeset
   315
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   316
cf47d420764a initial checkin
tz
parents:
diff changeset
   317
!ResourceSelectionBrowser methodsFor:'startup / release'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   318
cf47d420764a initial checkin
tz
parents:
diff changeset
   319
closeCancel
cf47d420764a initial checkin
tz
parents:
diff changeset
   320
cf47d420764a initial checkin
tz
parents:
diff changeset
   321
    resourceMethod := nil.
cf47d420764a initial checkin
tz
parents:
diff changeset
   322
    super closeCancel
cf47d420764a initial checkin
tz
parents:
diff changeset
   323
cf47d420764a initial checkin
tz
parents:
diff changeset
   324
cf47d420764a initial checkin
tz
parents:
diff changeset
   325
cf47d420764a initial checkin
tz
parents:
diff changeset
   326
! !
cf47d420764a initial checkin
tz
parents:
diff changeset
   327
cf47d420764a initial checkin
tz
parents:
diff changeset
   328
!ResourceSelectionBrowser class methodsFor:'documentation'!
cf47d420764a initial checkin
tz
parents:
diff changeset
   329
cf47d420764a initial checkin
tz
parents:
diff changeset
   330
version
cf47d420764a initial checkin
tz
parents:
diff changeset
   331
    ^ '$Header$'
cf47d420764a initial checkin
tz
parents:
diff changeset
   332
! !