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