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