Tools_ClassCategoryList.st
author Claus Gittinger <cg@exept.de>
Fri, 10 Nov 2006 17:57:10 +0100
changeset 7504 34ab937df8de
parent 7425 9e029102ef55
child 8345 b2e8f543ec50
permissions -rw-r--r--
preps for SmallTeam
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     1
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     3
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     4
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     5
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     6
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     8
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
     9
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    10
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    11
"
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    12
"{ Package: 'stx:libtool' }"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
BrowserList subclass:#ClassCategoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'categoryList classes allSelected'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:'AdditionalEmptyCategories'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-Browsers-New'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!ClassCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    25
copyright
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    26
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    27
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    28
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    29
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    30
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    31
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    33
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    34
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    35
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    36
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    37
!
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6067
diff changeset
    38
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    embeddable application displaying the class-categories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    Provides an outputGenerator, which enumerates the classes in
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    the selected categories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    [author:]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	Claus Gittinger (cg@exept.de)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!ClassCategoryList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
singleCategoryWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
     UIPainter new openOnClass:ClassCategoryList andSelector:#singleCategoryWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
     ClassCategoryList new openInterface:#singleCategoryWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    <resource: #canvas>
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
     #(#FullSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    68
	#name: #singleCategoryWindowSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    69
	#window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
       #(#WindowSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    71
	  #label: 'ClassCategoryList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    72
	  #name: 'ClassCategoryList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    73
	  #min: #(#Point 0 0)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    74
	  #max: #(#Point 1024 721)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    75
	  #bounds: #(#Rectangle 218 175 518 475)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    76
	)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    77
	#component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
       #(#SpecCollection
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    79
	  #collection: #(
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    80
	   #(#LabelSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    81
	      #label: 'ClassCategoryName'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    82
	      #name: 'ClassCategoryLabel'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    83
	      #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 25 0)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    84
	      #translateLabel: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    85
	      #labelChannel: #classCategoryLabelHolder
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    86
	      #menu: #menuHolder
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    87
	    )
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    88
	   )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
         
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    90
	)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
     UIPainter new openOnClass:ClassCategoryList andSelector:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
     ClassCategoryList new openInterface:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
     ClassCategoryList open
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
     #(#FullSpec
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   111
        #name: #windowSpec
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   112
        #window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
       #(#WindowSpec
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   114
          #label: 'ClassCategoryList'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   115
          #name: 'ClassCategoryList'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   116
          #min: #(#Point 0 0)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   117
          #max: #(#Point 1024 721)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   118
          #bounds: #(#Rectangle 13 23 313 323)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   119
        )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   120
        #component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
       #(#SpecCollection
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   122
          #collection: #(
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   123
           #(#SequenceViewSpec
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   124
              #name: 'List'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   125
              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   126
              #tabable: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   127
              #model: #selectedCategories
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   128
              #menu: #menuHolder
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   129
              #hasHorizontalScrollBar: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   130
              #hasVerticalScrollBar: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   131
              #miniScrollerHorizontal: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   132
              #isMultiSelect: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   133
              #valueChangeSelector: #selectionChangedByClick
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   134
              #useIndex: false
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   135
              #sequenceList: #categoryList
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   136
              #doubleClickChannel: #doubleClickChannel
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   137
              #properties: 
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   138
             #(#PropertyListDictionary
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   139
                #dragArgument: nil
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   140
                #dropArgument: nil
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   141
                #canDropSelector: #canDropContext:
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   142
                #dropSelector: #doDropContext:
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   143
              )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   144
            )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   145
           )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
         
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   147
        )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    "Created: / 5.2.2000 / 13:42:11 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    "Modified: / 18.8.2000 / 20:11:49 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
!ClassCategoryList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    ^ #(
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
	#(#doubleClickChannel #action )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	#forceGeneratorTrigger
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	#hideUnloadedClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	#immediateUpdate
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
	#inGeneratorHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	#menuHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	#nameSpaceFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
	#organizerMode
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
	#outGeneratorHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	#packageFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
	#selectedCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
	#selectionChangeCondition
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
	#slaveMode
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	#updateTrigger
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
      ).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
!ClassCategoryList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
categoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    categoryList isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
	categoryList := ValueHolder new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    ^ categoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    "Created: / 25.2.2000 / 02:23:08 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
categoryList:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    categoryList notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
	categoryList removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    categoryList := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
    categoryList notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
	categoryList addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    "Created: / 18.8.2000 / 15:21:42 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
classCategoryLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    ^ self pseudoListLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
selectedCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    ^ self selectionHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
selectedCategories:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    ^ self selectionHolder:aValueHolder
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
!ClassCategoryList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
delayedUpdate:something with:aParameter from:changedObject
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   224
    |selectedCategories allSelectedBefore 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
     nameListEntryForALL categoryOfClass wg|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
    selectedCategories := self selectedCategoriesStrings.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    changedObject == Smalltalk ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   230
        ((something == #classVariables) 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   231
        or:[something == #classDefinition]) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   232
            listValid == true ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   233
                categoryOfClass := aParameter category.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   234
                (categoryList value includes:categoryOfClass) ifFalse:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   235
                    self invalidateList.                
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   236
                ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   237
                slaveMode value ~~ true ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   238
                    (selectedCategories includes:categoryOfClass) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   239
                        "/ a selected class has changed
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   240
                        "/ in order to give others a chance to update their list before,
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   241
                        "/ this one is always enqueued for delayed update (even if immediateUpdate is true)
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   242
                        "/ self enqueueDelayedUpdateOutputGenerator
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   243
                        self enqueueMessage:#updateOutputGenerator for:self arguments:#()
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   244
                    ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   245
                ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   246
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   247
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   248
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   249
        something == #newClass ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   250
            categoryOfClass := aParameter category.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   251
            listValid == false ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   252
                ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   253
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   255
            (categoryList value includes:categoryOfClass) ifFalse:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   256
                self invalidateList.                
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   257
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   258
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   259
            slaveMode value ~~ true ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   260
                (selectedCategories includes:categoryOfClass) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   261
                    self enqueueDelayedUpdateOutputGenerator
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   262
                ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   263
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   264
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   265
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   267
        self invalidateList.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   268
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   269
        (something == #classRemove 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   270
        or:[something == #projectOrganization 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   271
        or:[something == #organization]]) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   272
            slaveMode value ~~ true ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   273
                "/ sorry: cannot filter on category (already changed to #removed)
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   274
                self enqueueDelayedUpdateOutputGenerator
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   275
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   276
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   277
        ^ self
5591
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
    changedObject == ChangeSet ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   281
        "/ remove all other change notifications from the eventQueue
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   282
        wg := self windowGroup.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   283
        wg isNil ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   284
            "/ oops - should no longer be dependent...
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   285
            changedObject removeDependent:self.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   286
        ] ifFalse:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   287
            wg sensor 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   288
                flushEventsFor:self 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   289
                where:[:ev | ev isMessageSendEvent 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   290
                             and:[ev selector == #delayedUpdate:with:from:
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   291
                             and:[(ev arguments at:3) == ChangeSet]]].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   292
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   294
        something == #addChange: ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   295
            "/ only need to invalidate, if that change changes my emphasis 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   296
            "/ (i.e. if its a new methodChange)
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   297
            self window topView shown ifFalse:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   298
                self invalidateList.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   299
                ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   300
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   301
        
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
"/            self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   304
            aParameter isMethodChange ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   305
                aParameter changeClass notNil ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   306
                    (ChangeSet current 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   307
                        count:[:chg | chg notNil and:[chg isMethodChange
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   308
                                      and:[ chg className = aParameter className ]]])
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   309
                    == 1 ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   310
                        "/ that methodChange is the first for this method.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   311
                        self colorizeCategoryAsChanged:(aParameter changeClass category).
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   312
                    ]
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   313
                ]
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   314
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   315
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   316
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   318
        self invalidateList.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   319
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
    changedObject == nameSpaceFilter ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   323
        "/ all might be more or less than before ...
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   324
        allSelected := false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
    changedObject == packageFilter ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   327
        "/ all might be more or less than before ...
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   328
        allSelected := false.    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   331
    changedObject == self selectedCategories ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   332
        categoryList isNil ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   333
            "/ oops - hurry up
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   334
            self invalidateList.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   335
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   337
        nameListEntryForALL := self class nameListEntryForALL.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   339
        selectedCategories size > 1 ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   340
            (selectedCategories includes:nameListEntryForALL) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   341
                self makeSelectionOtherThanAllVisible.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   342
            ]
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   343
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   345
        "/ if all selected before AND allSelected after, no need to update the output generator
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   346
        allSelectedBefore := allSelected ? false.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   347
        allSelected := selectedCategories includes:nameListEntryForALL.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   348
        (allSelectedBefore and:[allSelected]) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   349
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   350
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
    super delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
    "Created: / 5.2.2000 / 13:42:12 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
    "Modified: / 12.11.2001 / 19:36:16 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
forceUpdateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    self categoryList setValue:#().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    self updateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    self categoryList changed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
selectionChangedByClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    "we are not interested in that - get another notification
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
     via the changed valueHolder"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
    "Created: / 11.2.2000 / 11:39:48 / 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
update:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
    |categoryOfClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    changedObject == Smalltalk ifTrue:[
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   376
        something == #methodInClass ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   377
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   378
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   379
        something == #classComment ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   380
            ^ self.
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   381
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   382
        something == #methodDictionary ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   383
            ^ self 
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   384
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   385
        (something == #classVariables
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   386
        or:[something == #classDefinition]) ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   387
            categoryOfClass := aParameter category.
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   388
            (self selectedCategoriesStrings includes:categoryOfClass) ifTrue:[
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
"/ self halt.
6677
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   390
                self updateOutputGenerator.                
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   391
            ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   392
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   393
        something == #methodTrap ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   394
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   395
        ].
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   396
        something == #methodInClassRemoved ifTrue:[
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   397
            ^ self
bae57592a094 ignore some updates - speedup
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   398
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
"/    changedObject == ChangeSet ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
"/        something == #addChange: ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
"/            ^ self
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
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
    super update:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
    "Modified: / 5.11.2001 / 14:31:18 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
!ClassCategoryList methodsFor:'drag & drop'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   414
canDropContext:aDropContext
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   415
    |cat objects droppedClasses|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   417
    objects := aDropContext dropObjects collect:[:obj | obj theObject].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   418
    (self objectsAreClassFiles:objects) ifTrue:[^ true].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   419
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   420
    (objects conform:[:aClass | aClass isClass]) ifFalse:[^ false].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   421
    droppedClasses := objects.
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   422
    (droppedClasses contains:[:aClass | aClass isPrivate not]) ifFalse:[^ false].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
    cat := self categoryAtTargetPointOf:aDropContext.
6492
9c446e709216 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6468
diff changeset
   425
    cat isNil ifTrue:[ ^ false ].
9c446e709216 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6468
diff changeset
   426
    cat = '* obsolete *' ifTrue:[ ^  false ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   428
    (droppedClasses contains:[:aClass | aClass category ~= cat]) ifFalse:[^ false].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
    ^ true.
7119
ae1ad5c150c7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6978
diff changeset
   430
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   431
    "Modified: / 17-10-2006 / 18:28:04 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
categoryAtTargetPointOf:aDropContext
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
    |p categoryListView lineNr cat|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
    p := aDropContext targetPoint.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    categoryListView := aDropContext targetWidget.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
    lineNr := categoryListView lineAtY:p y.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    lineNr isNil ifTrue:[^ nil].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
    cat := categoryList value at:lineNr.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    cat := cat string.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
    cat = self class nameListEntryForALL ifTrue:[^ nil].
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   447
    (cat endsWith:(self stringForExtensions)) ifTrue:[
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   448
        cat := cat copyWithoutLast:(self stringForExtensions size)
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   449
    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
    ^ cat
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6179
diff changeset
   453
doDropContext:aDropContext
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   454
    |cat objects|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   456
    objects := aDropContext dropObjects collect:[:aDropObject | aDropObject theObject].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   457
    (objects conform:[:something | something isClass]) ifTrue:[
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   458
        cat := self categoryAtTargetPointOf:aDropContext.
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   459
        cat notNil ifTrue:[
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   460
            self masterApplication moveClasses:objects toCategory:cat.
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   461
        ].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   462
        ^ self
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   463
    ].
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   464
    (objects conform:[:something | something isFilename]) ifTrue:[
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   465
        self dropClassFiles:objects.
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   466
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
    ].
7119
ae1ad5c150c7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6978
diff changeset
   468
7425
9e029102ef55 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7119
diff changeset
   469
    "Modified: / 17-10-2006 / 18:29:25 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
!ClassCategoryList methodsFor:'generators'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
makeGenerator
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    "return a generator which enumerates the classes from the selected category."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
    |cats hideUnloadedClasses allName nameSpaceFilter packageFilter|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   479
    cats := self selectedCategoriesStrings.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
    cats size == 0 ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   481
        ^ #()
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
    allName := self class nameListEntryForALL.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
    hideUnloadedClasses := self hideUnloadedClasses value ? false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
    nameSpaceFilter := self nameSpaceFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
    nameSpaceFilter notNil ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   489
        (nameSpaceFilter includes:allName) ifTrue:[nameSpaceFilter := nil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
    packageFilter := self packageFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
    packageFilter notNil ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   493
        (packageFilter includes:allName) ifTrue:[packageFilter := nil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
    (cats includes:allName) ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   497
        hideUnloadedClasses ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   498
            ^ Iterator on:[:whatToDo |
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   499
                               Smalltalk allClassesDo:[:cls |
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   500
                                   cls isLoaded ifTrue:[
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   501
                                       (cls isRealNameSpace not) ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   502
                                           (nameSpaceFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   503
                                           or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   504
                                               (packageFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   505
                                               or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   506
                                                   whatToDo value:cls
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   507
                                               ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   508
                                           ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   509
                                       ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   510
                                   ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   511
                               ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   512
                          ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   513
        ].
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   514
        ^ Iterator on:[:whatToDo | 
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   515
                           Smalltalk allClassesDo:[:cls |
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   516
                               (cls isRealNameSpace not) ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   517
                                    (nameSpaceFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   518
                                    or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   519
                                        (packageFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   520
                                        or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   521
                                            whatToDo value:cls
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   522
                                        ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   523
                                    ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   524
                               ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   525
                           ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   526
                      ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   527
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
    ^ Iterator on:[:whatToDo | 
6067
d95d50b17159 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
   530
                       Smalltalk allClassesDo:[:cls | |cat|
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   531
                           (hideUnloadedClasses not or:[cls isLoaded]) 
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   532
                           ifTrue:[
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   533
                               (cls isRealNameSpace not) ifTrue:[
6067
d95d50b17159 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
   534
                                   cat := cls category ? '* no category *'.
d95d50b17159 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
   535
                                   (cats includes:cat) ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   536
                                       (nameSpaceFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   537
                                       or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   538
                                           (packageFilter isNil
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   539
                                           or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   540
                                               whatToDo value:cls
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   541
                                           ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   542
                                       ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   543
                                   ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   544
                               ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   545
                           ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   546
                       ]
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   547
                  ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   549
    "Created: / 05-02-2000 / 13:42:12 / cg"
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   550
    "Modified: / 10-11-2006 / 17:13:26 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
!ClassCategoryList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
colorizeCategoryAsChanged:category
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
    |colorizedCategoryItem categoryList idx|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
    colorizedCategoryItem := self colorizeForChangedCode:category copy asText.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
    categoryList := self categoryList value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
    idx := categoryList indexOf:category.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
    idx ~~ 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
	((categoryList at:idx) sameStringAndEmphasisAs:colorizedCategoryItem) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
	    categoryList at:idx put:colorizedCategoryItem.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
	    self categoryList changed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
listOfCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
    |categories hideUnloadedClasses generator nameSpaceFilter packageFilter allName
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   572
     categoriesWithExtensions categoriesWithChangedCode categoriesWithRemoteChangedCode
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   573
     classesInChangeSet classesInRemoteChangeSet|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
    allName := self class nameListEntryForALL.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
    hideUnloadedClasses := self hideUnloadedClasses value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
    nameSpaceFilter := self nameSpaceFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   579
    nameSpaceFilter notNil ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   580
        (nameSpaceFilter includes:allName) ifTrue:[nameSpaceFilter := nil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
    packageFilter := self packageFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
    packageFilter notNil ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   584
        (packageFilter includes:allName) ifTrue:[packageFilter := nil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
    categories := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
    categoriesWithExtensions := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
    categoriesWithChangedCode := Set new.
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   590
    categoriesWithRemoteChangedCode := Set new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
6978
6d2a2365dde8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6962
diff changeset
   592
    classesInChangeSet := ChangeSet current changedClasses.
6d2a2365dde8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6962
diff changeset
   593
    classesInChangeSet := classesInChangeSet collect:[:eachClass | eachClass theNonMetaclass].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   595
    classesInRemoteChangeSet := SmallTeam isNil ifTrue:[#()] ifFalse:[ SmallTeam changedClasses ].
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   596
    classesInRemoteChangeSet := classesInRemoteChangeSet collect:[:each | each theNonMetaclass].
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   597
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
    classes := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
    inGeneratorHolder isNil ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   600
        Smalltalk allClassesDo:[:cls | 
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   601
            |cat|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   602
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   603
            (hideUnloadedClasses not or:[cls isLoaded])
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   604
            ifTrue:[
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   605
                (cls isRealNameSpace not) ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   606
                    (nameSpaceFilter isNil
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   607
                    or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   608
                        (packageFilter isNil
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   609
                        or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
6066
dbc820318498 care for nil-category in classes
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
   610
                            cat := cls category ? '* no category *'.
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   611
                            cat isString ifFalse:[self halt:'oops - strange category'].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   612
                            categories add:cat.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   613
                            classes add:cls.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
6978
6d2a2365dde8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6962
diff changeset
   615
                            (classesInChangeSet includes:cls theNonMetaclass) ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   616
                                categoriesWithChangedCode add:cat
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   617
                            ].
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   618
                            (classesInRemoteChangeSet includes:cls theNonMetaclass) ifTrue:[
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   619
                                categoriesWithRemoteChangedCode add:cat
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   620
                            ].
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   621
                            cls hasExtensions ifTrue:[
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   622
                                categoriesWithExtensions add:cat
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   623
                            ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   624
                        ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   625
                    ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   626
                ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   627
            ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   628
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   630
        "/ those are simulated - in ST/X, empty categories do not
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   631
        "/ really exist; however, during browsing, it makes sense.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   632
        AdditionalEmptyCategories size > 0 ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   633
            "/ remove those that are present ...
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   634
            AdditionalEmptyCategories := AdditionalEmptyCategories select:[:cat | (categories includes:cat) not].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   635
            categories addAll:AdditionalEmptyCategories.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   636
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
    ] ifFalse:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   638
        generator := inGeneratorHolder value.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   639
        generator isNil ifTrue:[^ #() ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   640
        generator do:[:cat | categories add:cat].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   641
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
    categories := categories asOrderedCollection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
    categories sort.
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   646
    categories := 
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   647
        categories collect:[:cat | 
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   648
            (categoriesWithChangedCode includes:cat) ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   649
                 (self colorizeForChangedCode:cat copy asText).
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   650
            ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   651
                (categoriesWithExtensions includes:cat) ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   652
                     (self colorizeForDifferentPackage:cat copy asText)
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   653
                     "/ cannot add a + here - need separate list for presentation and filter
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   654
                     "/ cat , (self colorizeForDifferentPackage:self stringForExtensions)
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   655
                ] ifFalse:[
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   656
                    (categoriesWithRemoteChangedCode includes:cat) ifTrue:[
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   657
                         (self colorizeForChangedCodeInSmallTeam:cat copy asText).
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   658
                    ] ifFalse:[
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   659
                        cat
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   660
                    ]
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   661
                ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   662
            ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   663
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
    categories size == 1 ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   665
        self classCategoryLabelHolder value:(categories first)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
    categories size == 0 ifFalse:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5914
diff changeset
   668
        categories addFirst:(self class nameListEntryForALL).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
    ^ categories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
6950
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   672
    "Created: / 05-02-2000 / 13:42:12 / cg"
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   673
    "Modified: / 10-11-2006 / 17:43:19 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
listView 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
    ^ self builder componentAt:#List
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
makeDependent
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
    Smalltalk addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    ChangeSet addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
    "Created: / 5.2.2000 / 13:42:13 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
makeIndependent
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
    Smalltalk removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
    ChangeSet removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
    "Created: / 5.2.2000 / 13:42:13 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
makeItemVisible:item
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
    |idx listView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
    idx := categoryList value indexOf:item.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
    idx ~~ 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
	(listView := self listView) notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
	    listView makeLineVisible:idx.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
makeSelectionOtherThanAllVisible
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
    |selectedCategories item|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
    selectedCategories := self selectedCategoriesStrings.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
    "/ the first item after the *all* item
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
    item := (selectedCategories copy remove:self class nameListEntryForALL; yourself) first.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
    self makeItemVisible:item.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   713
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
release
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
    super release.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
    categoryList removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
selectedCategoriesStrings
6950
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   721
    |selectedCategoriesHolder selectedCategories stringForExtensions|
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   722
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   723
    stringForExtensions := self stringForExtensions.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
    selectedCategoriesHolder := self selectedCategories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
    selectedCategories := selectedCategoriesHolder value ? #().
6950
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   727
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   728
    selectedCategories := selectedCategories 
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   729
                collect:[:each | 
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   730
                                |s|
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   731
                                s := each string.
6950
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   732
                                (s endsWith:stringForExtensions) ifTrue:[
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   733
                                    s := s copyWithoutLast:(stringForExtensions size).
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   734
                                ].
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   735
                                s
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   736
                        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
    ^ selectedCategories
6950
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   738
0d03f8c9a9ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6702
diff changeset
   739
    "Modified: / 23-08-2006 / 11:38:26 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   741
6702
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   742
stringForExtensions
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   743
    ^ ' [ + ]'
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   744
!
0f4c00e8eecc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6677
diff changeset
   745
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
updateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
    |oldList newList oldSelection newSelection prevClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   748
     selectedCategoriesHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   749
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   750
    selectedCategoriesHolder := self selectedCategories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   751
    oldSelection := selectedCategoriesHolder value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   752
    prevClasses := classes copy.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   753
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   754
    newList := self listOfCategories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   755
    oldList := (self categoryList value) ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
    (newList sameContentsAs:oldList whenComparedWith:[:a :b | a sameStringAndEmphasisAs: b]) 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   757
    ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
	oldSelection size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
	    selectedCategoriesHolder removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
	    selectedCategoriesHolder value:#().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
	    selectedCategoriesHolder addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   762
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
	categoryList value:newList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
	oldSelection size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
	    newSelection := oldSelection select:[:cat | newList includes:cat].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
	    selectedCategoriesHolder value:newSelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
    ] ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
	"/ in case the same categories are present, but classes have changed ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   771
	(prevClasses isNil or:[(classes identicalContentsAs:prevClasses) not]) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
	    self updateOutputGenerator.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   775
    listValid := true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   776
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
    "Created: / 5.2.2000 / 13:42:13 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   778
    "Modified: / 18.8.2000 / 15:52:22 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   779
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
!ClassCategoryList methodsFor:'setup'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   783
commonPostBuild
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
    |listView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
    listView := self listView.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
    listView notNil ifTrue:[
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   788
        listView scrollWhenUpdating:nil
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
    ].
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   790
    super commonPostBuild
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   791
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
!ClassCategoryList methodsFor:'special'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
addAdditionalCategory:aCategory
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   796
    "/ those are simulated - in ST/X, empty categories do not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
    "/ really exist; however, during browsing, it makes sense.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
    AdditionalEmptyCategories isNil ifTrue:[
5914
acbd0265429f *** empty log message ***
ca
parents: 5909
diff changeset
   799
        AdditionalEmptyCategories := Set new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
    AdditionalEmptyCategories add:aCategory.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
5914
acbd0265429f *** empty log message ***
ca
parents: 5909
diff changeset
   803
    Smalltalk changed:#organization with:(nil -> aCategory).  "/ not really ... to force update
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   806
removeAdditionalCategories:aListOfCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   807
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   808
    "/ those are simulated - in ST/X, empty categories do not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
    "/ really exist; however, during browsing, it makes sense.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   810
    AdditionalEmptyCategories isNil ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
    aListOfCategories do:[:eachCategory |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
	AdditionalEmptyCategories remove:eachCategory ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   815
    Smalltalk changed:#organization   "/ not really ... to force update
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   816
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   817
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
removeAllAdditionalCategories
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
    "/ those are simulated - in ST/X, empty categories do not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
    "/ really exist; however, during browsing, it makes sense.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
    AdditionalEmptyCategories := nil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
!ClassCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   825
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   826
version
7504
34ab937df8de preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7425
diff changeset
   827
    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.18 2006-11-10 16:57:10 cg Exp $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   828
! !