Tools__HierarchicalProjectList.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:
14584
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ProjectList subclass:#HierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'hierarchicalProjectTree selectedProjectItems packageIcon
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
		hierarchicalProjectList hierarchicalProjectSelection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
		packageToItemDictionary'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:''
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Interface-Browsers-New'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
HierarchicalItemWithLabel subclass:#ProjectItem
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	instanceVariableNames:'packageID'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	classVariableNames:''
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	poolDictionaries:''
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	privateIn:HierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!HierarchicalProjectList class methodsFor:'documentation'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
copyright
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 COPYRIGHT (c) 2004 by eXept Software AG
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
              All Rights Reserved
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 This software is furnished under a license and may be used
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 only in accordance with the terms of that license and with the
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 be provided or otherwise made available to, or used by, any
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
 other person.  No title to or ownership of the software is
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
 hereby transferred.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
documentation
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    Like a ClassList, but shows classes hierarchical.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    If topClassHolders value is non-nil, only that classes hierarchy
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    is shown.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    embeddable application displaying the classes as listed by
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    the inputGenerator.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    Provides an outputGenerator, which enumerates the classes and
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    their protocols (method-categories) in the selected classes.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    [author:]
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	Claus Gittinger (cg@exept.de)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!HierarchicalProjectList class methodsFor:'interface specs'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    "This resource specification was automatically generated
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
     by the UIPainter of ST/X."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    "Do not manually edit this!! If it is corrupted,
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
     the UIPainter may not be able to read the specification."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    "
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
     UIPainter new openOnClass:HierarchicalProjectList andSelector:#windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
     HierarchicalProjectList new openInterface:#windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
     HierarchicalProjectList open
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    <resource: #canvas>
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ^ 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
     #(#FullSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
        #name: #windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
        #window: 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
       #(#WindowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
          #label: 'ProjectList'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
          #name: 'ProjectList'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
          #min: #(#Point 0 0)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
          #bounds: #(#Rectangle 16 46 316 346)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
        )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
        #component: 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
       #(#SpecCollection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
          #collection: #(
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
           #(#HierarchicalListViewSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
              #name: 'HierarchicalListView1'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
              #tabable: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
              #model: #hierarchicalProjectSelection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
              #menu: #menuHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
              #hasHorizontalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
              #hasVerticalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
              #miniScrollerHorizontal: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
              #listModel: #hierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
              #multipleSelectOk: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
              #highlightMode: #line
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
              #doubleClickSelector: #doubleClicked:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
              #indicatorSelector: #indicatorPressed:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
              #properties: 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
             #(#PropertyListDictionary
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
                #dragArgument: nil
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
                #dropArgument: nil
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
                #canDropSelector: #canDrop:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
                #dropSelector: #doDrop:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
              )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
            )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
           )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
         
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
        )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
      )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
xxwindowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "This resource specification was automatically generated
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
     by the UIPainter of ST/X."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    "Do not manually edit this!! If it is corrupted,
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
     the UIPainter may not be able to read the specification."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    "
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
     UIPainter new openOnClass:HierarchicalProjectList andSelector:#windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
     HierarchicalProjectList new openInterface:#windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
     HierarchicalProjectList open
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    "
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    <resource: #canvas>
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    ^ 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
     #(#FullSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
	#name: #windowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	#window: 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
       #(#WindowSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
	  #label: 'ProjectList'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
	  #name: 'ProjectList'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
	  #min: #(#Point 0 0)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	  #max: #(#Point 1024 721)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	  #bounds: #(#Rectangle 12 22 312 322)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
	#component: 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
       #(#SpecCollection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
	  #collection: #(
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
	   #(#SelectionInTreeViewSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	      #name: 'List'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
	      #model: #selectedProjectItems
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
	      #menu: #menuHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
	      #hasHorizontalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
	      #hasVerticalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
	      #miniScrollerHorizontal: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
	      #showRoot: false
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
	      #showDirectoryIndicator: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
	      #isMultiSelect: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	      #valueChangeSelector: #selectionChangedByClick
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	      #hierarchicalList: #hierarchicalProjectTree
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	      #childrenSelector: #actionToRetrieveChildren
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
	      #highlightMode: #line
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	      #doubleClickChannel: #doubleClickChannel
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	    )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	   #(#HierarchicalListViewSpec
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
	      #name: 'HierarchicalListView1'
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	      #tabable: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
	      #hasHorizontalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
	      #hasVerticalScrollBar: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	      #miniScrollerHorizontal: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
	      #listModel: #hierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
	      #multipleSelectOk: true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
	      #highlightMode: #line
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	      #doubleClickSelector: #doubleClicked:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	      #indicatorSelector: #indicatorPressed:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
	      "/ #showLeftIndicators: false
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	    )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
	   )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
         
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
	)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
      )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
!HierarchicalProjectList class methodsFor:'plugIn spec'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
aspectSelectors
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    "This resource specification was automatically generated
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
     by the UIPainter of ST/X."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "Do not manually edit this. If it is corrupted,
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
     the UIPainter may not be able to read the specification."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "Return a description of exported aspects;
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
     these can be connected to aspects of an embedding application
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
     (if this app is embedded in a subCanvas)."
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    ^ #(
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
        environmentHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
        #(#doubleClickChannel #action )
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
        #forceGeneratorTrigger
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
        #hideUnloadedClasses
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
        #immediateUpdate
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
        #inGeneratorHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
        #menuHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
        #organizerMode
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
        #outGeneratorHolder
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
        #selectedProjects
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
        #selectionChangeCondition
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
        #slaveMode
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
        #updateTrigger
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
        #showCoverageInformation
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
      ).
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    "Modified: / 20-07-2011 / 14:29:26 / cg"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    "Modified: / 24-02-2014 / 10:37:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
!HierarchicalProjectList methodsFor:'aspects'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
generateHierarchicalProjectTree
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    |anchor|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    self projectList value isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
	self updateList.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
	self projectList value isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
	    ^ nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
	]
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    anchor := ProjectItem new.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    anchor package:''.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    anchor label:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    packageToItemDictionary := IdentityDictionary new.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
    packageToItemDictionary at:'' asSymbol put:anchor.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    self projectList value do:[:eachPackageString |
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
	|package|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
	package := eachPackageString asSymbol.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
	(packageToItemDictionary includesKey:package) ifFalse:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
	    self addPackage:package 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
	].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
"/    environment allClassesDo:[:eachClass |
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
"/        |package|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
"/
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
"/        package := eachClass package asSymbol.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
"/        (packageToItemDictionary includesKey:package) ifFalse:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
"/            self addPackage:package 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
"/        ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
"/    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    anchor recursiveSortChildren:[:i1 :i2 | i1 label asLowercase < i2 label asLowercase].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    anchor expand.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    ^ anchor
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
hierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
    |anchor |
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    hierarchicalProjectList isNil ifTrue:[
14856
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   271
        hierarchicalProjectList := HierarchicalList new.
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   272
        hierarchicalProjectList showRoot:false.
14584
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
14856
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   274
        (self slaveMode value ~~ true) ifTrue:[
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   275
            anchor := self generateHierarchicalProjectTree.
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   276
            hierarchicalProjectList root:anchor.
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   277
            self setListValid:true.
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   278
        ] ifFalse:[
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   279
            self setListValid:false
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   280
        ]
14584
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
    ^ hierarchicalProjectList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
hierarchicalProjectSelection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
    hierarchicalProjectSelection isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
	hierarchicalProjectSelection := #() asValue.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
	hierarchicalProjectSelection addDependent:self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    ^ hierarchicalProjectSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
updateTreeSelection
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    "/ must expand items as required
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
    |itemsToSelect oldSelection newSelection|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
    itemsToSelect := OrderedCollection new.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
    (self selectedProjects value ? #()) do:[:eachSelectedProject |
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
        |item child|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
        item := hierarchicalProjectList root.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
        item notNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
            (eachSelectedProject asCollectionOfSubstringsSeparatedByAny:':/') do:[:part |
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
                item expand.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
                child := item detect:[:child | child label = part] ifNone:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
                child notNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
                    item := child.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
                ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
            ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
            itemsToSelect add:child.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
        ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
    oldSelection := hierarchicalProjectSelection value.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
    newSelection := itemsToSelect collect:[:eachItem | hierarchicalProjectList identityIndexOf:eachItem].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
    oldSelection ~= newSelection ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
        hierarchicalProjectSelection value:newSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    "Modified: / 17-08-2006 / 09:56:32 / cg"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
!HierarchicalProjectList methodsFor:'change & update'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
delayedUpdate:something with:aParameter from:changedObject
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
    |cls sel oldMethod newMethod newPackage|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
    self inSlaveModeOrInvisible ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
	super delayedUpdate:something with:aParameter from:changedObject.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
	^ self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
"/    (self slaveMode value == true) ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
"/        super delayedUpdate:something with:aParameter from:changedObject.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
"/        ^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
"/    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
    changedObject == updateTrigger ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
	hierarchicalProjectList := nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
	self hierarchicalProjectList.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
	self updateTreeSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
	^ self        
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    changedObject == slaveMode ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
	listValid ~~ true ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
	    self enqueueDelayedUpdateList
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
	].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
	"/ self invalidateList.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
	self updateTreeSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
	^  self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
    changedObject == hierarchicalProjectSelection ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
	self updateSelectionFromTree.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
	^ self        
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
"/    changedObject == self selectedProjects ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
"/        "/ update the trees selection as appropriate
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
"/        self updateTreeSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
"/    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    changedObject == projectList ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
	"/ update the tree
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
	self hierarchicalProjectList root:(self generateHierarchicalProjectTree).
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
	^ self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
        
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    super delayedUpdate:something with:aParameter from:changedObject
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    "Created: / 17.2.2000 / 23:41:02 / cg"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
    "Modified: / 26.2.2000 / 01:21:49 / cg"
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
enqueueDelayedAddPackage:package
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    (NewSystemBrowser synchronousUpdate == true
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
    or:[ immediateUpdate value == true ])
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
    ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
        self addPackage:package.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
        ^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    ^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
        enqueueMessage:#addPackage:
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
        for:self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
        arguments:(Array with:package)
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
update:something with:aParameter from:changedObject
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
    something == #methodTrap ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
        "/ don't care for that.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
        ^ self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
    changedObject == organizerMode ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
        "/ don't care for that.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
        ^ self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
    super update:something with:aParameter from:changedObject
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
updateSelectionFromTree
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
    |treeSelection|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
    treeSelection := hierarchicalProjectSelection value 
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
		    collect:[:eachIndex |  |item|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
				    item := hierarchicalProjectList at:eachIndex ifAbsent:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
				    item package
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
			    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
    treeSelection asSet ~= (self selectedProjects value ? #()) asSet ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
	self selectedProjects value:treeSelection.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
    ]
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
!HierarchicalProjectList methodsFor:'private'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
addPackage:package
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
    |i p pp l parentPackage parentItem idx|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
    i:= packageToItemDictionary at:package asSymbol ifAbsent:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
    i isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
        i := ProjectItem new.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
        i package:package.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
        packageToItemDictionary at:package asSymbol put:i.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
        package size > 0 ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
            "/ find the parent ...
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
            p := package asCollectionOfSubstringsSeparatedByAny:':/.'.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
            pp := p copyButLast.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
            l := (pp asStringWith:$/) size.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
            parentPackage := package copyTo:l.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
            parentItem := self addPackage:parentPackage asSymbol .
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
            parentPackage size == 0 ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
                idx := 1.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
            ] ifFalse:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
                idx := parentPackage size + 2
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
            ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
            i label:(package copyFrom:idx).
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
            parentItem add:i sortBlock:[:i1 :i2 | i1 label asLowercase < i2 label asLowercase].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
            "/ TODO: special items for classes, resources etc.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
        
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
        ]
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
    ^ i
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
release
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
    super release.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
    hierarchicalProjectSelection removeDependent:self.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
!HierarchicalProjectList methodsFor:'user actions'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
doubleClicked:anIndex
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
    |item|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
    item := hierarchicalProjectList at:anIndex ifAbsent:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
    item isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
	^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
    ].        
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
    (item canExpand not or:[item isExpanded]) ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
	doubleClickChannel notNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
	    doubleClickChannel value:anIndex.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
	].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
	^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
    item expand.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
indicatorPressed:anIndex
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
    |item sensor|
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
    item := hierarchicalProjectList at:anIndex ifAbsent:nil.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
    item isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
	^ self
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
    sensor := self window sensor.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
    (sensor ctrlDown or:[sensor shiftDown]) ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
	item recursiveToggleExpand
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
    ] ifFalse:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
	item toggleExpand
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
!HierarchicalProjectList::ProjectItem methodsFor:'accessing'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
children
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
    children isNil ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
        children := #()
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
    ^ children
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
icon
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
    ^ SystemBrowser packageIcon
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
label:aString
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
    label ~= aString ifTrue:[
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
        label := aString.
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
        self changed:#label
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
    ].
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
package
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
    ^ packageID
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
package:prefixOrPackageID
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
    packageID := prefixOrPackageID
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
!HierarchicalProjectList class methodsFor:'documentation'!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
version
14856
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   523
    ^ '$Header: /cvs/stx/stx/libtool/Tools__HierarchicalProjectList.st,v 1.16 2014-11-19 21:41:12 cg Exp $'
14584
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   524
!
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
version_CVS
14856
2a6dea76491a access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14584
diff changeset
   527
    ^ '$Header: /cvs/stx/stx/libtool/Tools__HierarchicalProjectList.st,v 1.16 2014-11-19 21:41:12 cg Exp $'
14584
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
! !
4e917e8a9736 class: Tools::HierarchicalProjectList
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529