Tools_HierarchicalClassCategoryList.st
author Claus Gittinger <cg@exept.de>
Wed, 02 Feb 2005 12:03:33 +0100
changeset 6179 182d948dcf05
parent 5794 bda2cf9d0702
child 6689 8f6d4412c254
permissions -rw-r--r--
copyright
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     1
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     3
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     4
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     5
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     6
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     8
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
     9
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    10
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    11
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    12
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    13
"{ Package: 'stx:libtool' }"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"{ NameSpace: Tools }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
ClassCategoryList subclass:#HierarchicalClassCategoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	instanceVariableNames:'hierarchicalCategoryTree hierarchicalCategoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
		hierarchicalCategorySelection categoryToItemDictionary'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Interface-Browsers-New'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
5670
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    25
HierarchicalItem subclass:#ClassCategoryItem
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    26
	instanceVariableNames:'label category'
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    27
	classVariableNames:''
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    28
	poolDictionaries:''
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    29
	privateIn:HierarchicalClassCategoryList
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    30
!
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
    31
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!HierarchicalClassCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    34
copyright
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    35
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    36
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    37
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    38
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    39
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    40
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    42
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    43
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    44
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    45
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    46
!
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
    47
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
documentation
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    embeddable application displaying the classes as listed by
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    the inputGenerator.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    Provides an outputGenerator, which enumerates the classes and
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    their protocols (method-categories) in the selected classes.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    [author:]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	Claus Gittinger (cg@exept.de)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!HierarchicalClassCategoryList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
     UIPainter new openOnClass:HierarchicalClassCategoryList andSelector:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
     HierarchicalClassCategoryList new openInterface:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
     HierarchicalClassCategoryList open
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
     #(#FullSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    81
	#name: #windowSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    82
	#window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
       #(#WindowSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    84
	  #label: 'ClassCategoryList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    85
	  #name: 'ClassCategoryList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    86
	  #min: #(#Point 0 0)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    87
	  #max: #(#Point 1024 721)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    88
	  #bounds: #(#Rectangle 16 46 316 346)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    89
	)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    90
	#component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
       #(#SpecCollection
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    92
	  #collection: #(
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    93
	   #(#HierarchicalListViewSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    94
	      #name: 'List'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    95
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    96
	      #tabable: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    97
	      #model: #hierarchicalCategorySelection
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    98
	      #menu: #menuHolder
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    99
	      #hasHorizontalScrollBar: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   100
	      #hasVerticalScrollBar: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   101
	      #miniScrollerHorizontal: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   102
	      #listModel: #hierarchicalCategoryList
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   103
	      #multipleSelectOk: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   104
	      #highlightMode: #line
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   105
	      #doubleClickSelector: #doubleClicked:
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   106
	      #showLines: false
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   107
	      #indicatorSelector: #indicatorPressed:
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   108
	      #useDefaultIcons: false
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   109
	      #properties: 
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   110
	     #(#PropertyListDictionary
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   111
		#dragArgument: nil
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   112
		#dropArgument: nil
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   113
		#canDropSelector: #canDrop:
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   114
		#dropSelector: #doDrop:
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   115
	      )
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   116
	    )
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   117
	   )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
         
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   119
	)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!HierarchicalClassCategoryList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    ^ #(
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	#(#doubleClickChannel #action )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	#forceGeneratorTrigger
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	#hideUnloadedClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
	#immediateUpdate
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
	#inGeneratorHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
	#menuHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	#nameSpaceFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
	#organizerMode
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
	#outGeneratorHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
	#packageFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
	#selectedCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	#selectionChangeCondition
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	#slaveMode
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	#updateTrigger
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
      ).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
!HierarchicalClassCategoryList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
addCategory:category
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    |item path parentPath parentCategory parentItem|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    item:= categoryToItemDictionary at:category ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    item isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
	path := category asCollectionOfSubstringsSeparatedBy:$-.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
	item := ClassCategoryItem new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	item category:category.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	item label:(path last).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	categoryToItemDictionary at:category put:item.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	category size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	    "/ find the parent ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	    parentPath := path copyWithoutLast:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
	    parentCategory := parentPath asStringWith:$-.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	    parentItem := self addCategory:parentCategory .
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
	    parentItem add:item sortBlock:[:i1 :i2 | i1 category asLowercase < i2 category asLowercase].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    ^ item
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
generateHierarchicalCategoryTree
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    |anchor|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    self categoryList value isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
	self updateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
	self categoryList value isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
	    ^ nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    anchor := ClassCategoryItem new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    anchor category:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    anchor label:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    categoryToItemDictionary := Dictionary new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    categoryToItemDictionary at:'' asSymbol put:anchor.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    self categoryList value do:[:eachCategory |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
	(categoryToItemDictionary includesKey:eachCategory) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
	    self addCategory:eachCategory 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    anchor recursiveSortChildren:[:i1 :i2 | i1 category asLowercase < i2 category asLowercase].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    anchor expand.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    ^ anchor
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
hierarchicalCategoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    |anchor |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    hierarchicalCategoryList isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
	hierarchicalCategoryList := HierarchicalList new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
	hierarchicalCategoryList showRoot:false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
	(self slaveMode value ~~ true) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
	    anchor := self generateHierarchicalCategoryTree.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
	    hierarchicalCategoryList root:anchor.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
	    listValid := true
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
	] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
	    listValid := false
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    ^ hierarchicalCategoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
hierarchicalCategorySelection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    hierarchicalCategorySelection isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
	hierarchicalCategorySelection := #() asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
	hierarchicalCategorySelection addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    ^ hierarchicalCategorySelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
!HierarchicalClassCategoryList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    |cls sel oldMethod newMethod newPackage|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
    self inSlaveModeOrInvisible ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
	super delayedUpdate:something with:aParameter from:changedObject.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
	^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    changedObject == updateTrigger ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
	hierarchicalCategoryTree := nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
	self hierarchicalCategoryList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
	self updateTreeSelectionFromList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
	^ self        
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    changedObject == slaveMode ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
	listValid ~~ true ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
	    self enqueueDelayedUpdateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
	"/ self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
	^  self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    changedObject == hierarchicalCategorySelection ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
	self updateSelectionFromTree.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
	^ self        
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    changedObject == self selectedCategories ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
	"/ update the trees selection as appropriate
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
"/        self updateTreeSelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
	self updateTreeSelectionFromList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    changedObject == categoryList ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
	"/ update the tree
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
	self hierarchicalCategoryList root:(self generateHierarchicalCategoryTree).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
	^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    super delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
    "Created: / 17.2.2000 / 23:41:02 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
    "Modified: / 26.2.2000 / 01:21:49 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
updateSelectionFromTree
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
    |treeSelection|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
    treeSelection := hierarchicalCategorySelection value 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
		    collect:[:eachIndex |  |item|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
				    item := hierarchicalCategoryList at:eachIndex ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
				    item category
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
			    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    treeSelection asSet ~= (self selectedCategories value ? #()) asSet ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
	self selectedCategories value:treeSelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
updateTreeSelectionFromList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    |listSelection selectedTreeItems treeSelection|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    listSelection := self selectedCategories value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
    selectedTreeItems := listSelection collect:[:itemString | self treeItemForString:itemString string].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
    treeSelection := selectedTreeItems collect:[:eachItem | hierarchicalCategoryList identityIndexOf:eachItem].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
    treeSelection := treeSelection asOrderedCollection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
"/hierarchicalCategorySelection value 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
"/                    collect:[:eachIndex |  |item|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
"/                                    item := hierarchicalCategoryList at:eachIndex ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
"/                                    item category
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
"/                            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
"/
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
"/    treeSelection asSet ~= (self selectedCategories value ? #()) asSet ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
"/        self selectedCategories value:treeSelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
"/    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    self hierarchicalCategorySelection value:treeSelection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
!HierarchicalClassCategoryList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
makeItemVisible:itemString
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
    |treeItem idx listView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    treeItem := self treeItemForString:itemString.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
    idx := hierarchicalCategoryList identityIndexOf:treeItem.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
    idx ~~ 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
	(listView := self listView) notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
	    listView makeLineVisible:idx.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
release
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
    super release.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    hierarchicalCategorySelection removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
treeItemForString:itemString
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    |itemPath treeItem|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    itemPath := itemString string asCollectionOfSubstringsSeparatedBy:$-.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
    treeItem := hierarchicalCategoryList root.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
    [itemPath notEmpty] whileTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
	treeItem expand.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
	treeItem := treeItem detect:[:childItem | childItem label string = itemPath first] ifNone:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
	itemPath := itemPath copyFrom:2.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
    ^ treeItem
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
!HierarchicalClassCategoryList methodsFor:'user actions'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
doubleClicked:anIndex
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    |item|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
    item := hierarchicalCategoryList at:anIndex ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
    item isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
	^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
    ].        
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    (item canExpand not or:[item isExpanded]) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
	doubleClickChannel notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
	    doubleClickChannel value:anIndex.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
	] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
	    item collapse.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
	^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    item expand.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
indicatorPressed:anIndex
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
    |item sensor|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    item := hierarchicalCategoryList at:anIndex ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
    item isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
	^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
    sensor := self window sensor.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    (sensor ctrlDown or:[sensor shiftDown]) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
	item recursiveToggleExpand
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
	item toggleExpand
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
5793
23aa2ad9b7b4 category change
Claus Gittinger <cg@exept.de>
parents: 5670
diff changeset
   388
!HierarchicalClassCategoryList::ClassCategoryItem methodsFor:'accessing'!
5670
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   389
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   390
category
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   391
    ^ category
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   392
!
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   393
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   394
category:something
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   395
    category := something.
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   396
!
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   397
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   398
icon
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   399
    ^ nil "/ SystemBrowser packageIcon
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   400
!
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   401
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   402
label
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   403
    ^ label
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   404
!
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   405
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   406
label:something
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   407
    label := something.
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   408
! !
e5c8a8e964dc oops - private class got lost
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   409
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
!HierarchicalClassCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
version
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 5794
diff changeset
   413
    ^ '$Header: /cvs/stx/stx/libtool/Tools_HierarchicalClassCategoryList.st,v 1.6 2005-02-02 11:01:51 cg Exp $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
! !