Tools__HierarchicalClassCategoryList.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 15566 184cea584be5
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
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