Tools_ClassList.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 05 Sep 2013 12:46:11 +0200
changeset 13498 b8d845e42988
parent 13442 df9b36d0a370
child 13523 2714fc27c2c0
permissions -rw-r--r--
Added `environment` instance variable to Tools__NewSystemBrowser and components it uses. The environment is by default initialized to Smalltalk. This allow for displaying limited subset of classes in the browser. The classes displayed does not even have to be classes and does not have to be installed in Smalltalk dictionary.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     1
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     3
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     4
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     5
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     6
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     8
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
     9
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    10
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
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:#ClassList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'classList classNameList meta lastSelectedClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
		selectedClassNameIndices currentNamespace hidePrivateClasses
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
    19
		unloadedClassesColor markApplicationsHolder classFilterBlock
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
    20
		sortByNameAndInheritance outGeneratorHolderForMethods'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	classVariableNames:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	poolDictionaries:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	category:'Interface-Browsers-New'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!ClassList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
6179
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    28
copyright
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    29
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    30
 COPYRIGHT (c) 2004 by eXept Software AG
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    31
              All Rights Reserved
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    32
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    33
 This software is furnished under a license and may be used
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    34
 only in accordance with the terms of that license and with the
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    35
 inclusion of the above copyright notice.   This software may not
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    36
 be provided or otherwise made available to, or used by, any
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    37
 other person.  No title to or ownership of the software is
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    38
 hereby transferred.
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    39
"
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    40
!
182d948dcf05 copyright
Claus Gittinger <cg@exept.de>
parents: 6006
diff changeset
    41
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
documentation
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    embeddable application displaying the classes as listed by
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    the inputGenerator.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    Provides an outputGenerator, which enumerates the classes and
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    their protocols (method-categories) in the selected classes.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    [author:]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	Claus Gittinger (cg@exept.de)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!ClassList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
singleClassWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
     UIPainter new openOnClass:ClassList andSelector:#singleClassWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
     ClassList new openInterface:#singleClassWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
     #(#FullSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    74
	#name: #windowSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    75
	#window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
       #(#WindowSpec
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    77
	  #label: 'ClassList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    78
	  #name: 'ClassList'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    79
	  #min: #(#Point 0 0)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    80
	  #max: #(#Point 1024 721)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    81
	  #bounds: #(#Rectangle 12 22 312 322)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    82
	)
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    83
	#component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
       #(#SpecCollection
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    85
	  #collection: #(
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    86
	   #(#LabelSpec
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    87
	      #label: 'ClassName'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    88
	      #name: 'ClassLabel'
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    89
	      #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
    90
	      #translateLabel: true
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    91
	      #labelChannel: #classLabelHolder
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    92
	      #menu: #menuHolder
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    93
	    )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
"/           #(#UISubSpecification
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
"/              #name: 'MetaToggleSpec'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
"/              #layout: #(#LayoutFrame 0 0.0 -25 1.0 0 1.0 0 1.0)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
"/              #minorKey: #metaSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
"/            )
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    99
	   )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
         
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   101
	)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
     UIPainter new openOnClass:ClassList andSelector:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
     ClassList new openInterface:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
     ClassList open
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
     #(#FullSpec
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   122
        #name: #windowSpec
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   123
        #window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
       #(#WindowSpec
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   125
          #label: 'ClassList'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   126
          #name: 'ClassList'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   127
          #min: #(#Point 0 0)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   128
          #bounds: #(#Rectangle 16 46 316 346)
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   129
        )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   130
        #component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
       #(#SpecCollection
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   132
          #collection: #(
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   133
           #(#SequenceViewSpec
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   134
              #name: 'List'
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   135
              #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: 6318
diff changeset
   136
              #tabable: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   137
              #model: #selectedClassNameIndices
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   138
              #menu: #menuHolder
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   139
              #hasHorizontalScrollBar: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   140
              #hasVerticalScrollBar: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   141
              #miniScrollerHorizontal: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   142
              #isMultiSelect: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   143
              #valueChangeSelector: #selectionChangedByClick
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   144
              #useIndex: true
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   145
              #sequenceList: #classNameList
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   146
              #doubleClickChannel: #doubleClickChannel
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   147
              #properties: 
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   148
             #(#PropertyListDictionary
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   149
                #dragArgument: nil
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   150
                #dropArgument: nil
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   151
                #canDropSelector: #canDropContext:
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   152
                #dropSelector: #doDropContext:
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   153
              )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   154
            )
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   155
           )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
         
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   157
        )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
!ClassList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    ^ #(
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   175
        #currentNamespace
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   176
        #(#doubleClickChannel #action )
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   177
        #forceGeneratorTrigger
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   178
        #hidePrivateClasses
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   179
        #hideUnloadedClasses
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   180
        #sortByNameAndInheritance
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   181
        #immediateUpdate
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   182
        #inGeneratorHolder
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   183
        #menuHolder
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   184
        #meta
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   185
        #organizerMode
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   186
        #outGeneratorHolder
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   187
        #packageFilter
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   188
        #nameSpaceFilter
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   189
        #selectedClasses
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   190
        #selectionChangeCondition
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   191
        #showClassPackages
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   192
        #slaveMode
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   193
        #updateTrigger
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   194
        #markApplicationsHolder
9437
51e7a4cd63ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9434
diff changeset
   195
        #showCoverageInformation
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
   196
        #outGeneratorHolderForMethods
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
      ).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   199
    "Modified: / 04-07-2011 / 18:34:44 / cg"
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
   200
    "Modified: / 07-08-2011 / 19:02:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
!ClassList methodsFor:'accessing'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
markApplications
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    "return the value of the instance variable 'markApplications' (automatically generated)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    ^ self markApplicationsHolder value
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    "Created: / 3.11.2001 / 14:06:19 / cg"
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
markApplications:something
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    "set the value of the instance variable 'markApplications' (automatically generated)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    self markApplicationsHolder value:something.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    "Created: / 3.11.2001 / 14:06:25 / cg"
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
unloadedClassesColor
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    "return the value of the instance variable 'unloadedClassesColor' (automatically generated)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    ^ unloadedClassesColor
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
unloadedClassesColor:something
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    "set the value of the instance variable 'unloadedClassesColor' (automatically generated)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    unloadedClassesColor := something.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
!ClassList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
classLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    ^ self pseudoListLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
classList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    classList isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
	classList := ValueHolder new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    ^ classList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    "Created: / 5.2.2000 / 13:42:16 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    "Modified: / 25.2.2000 / 02:21:07 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
classNameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
    classNameList isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
	classNameList := ValueHolder new
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    ^ classNameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
currentNamespace:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    currentNamespace notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
	currentNamespace removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    currentNamespace := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    currentNamespace notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
	currentNamespace isBehavior ifTrue:[self halt:'should not happen'].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
	currentNamespace addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    "Modified: / 4.2.2000 / 23:34:28 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
    "Created: / 5.2.2000 / 21:37:57 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
doubleClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    self halt:'should not happen'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
hidePrivateClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    hidePrivateClasses isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
	hidePrivateClasses := false asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
	hidePrivateClasses addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
    ^ hidePrivateClasses.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    "Created: / 24.2.2000 / 15:06:44 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
hidePrivateClasses:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    hidePrivateClasses notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
	hidePrivateClasses removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
    hidePrivateClasses := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    hidePrivateClasses notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
	hidePrivateClasses addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
    "Created: / 24.2.2000 / 15:06:46 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
markApplicationsHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
    markApplicationsHolder isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
	markApplicationsHolder := true asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
	markApplicationsHolder addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
    ^ markApplicationsHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
markApplicationsHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
    markApplicationsHolder notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
	markApplicationsHolder removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    markApplicationsHolder := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
    markApplicationsHolder notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
	markApplicationsHolder addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    "Created: / 24.2.2000 / 15:06:46 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
meta
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
    meta isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
	meta := false asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
	meta addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    ^ meta
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
    "Modified: / 31.1.2000 / 01:19:59 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    "Created: / 5.2.2000 / 13:42:16 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
meta:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
"/ (aValueHolder == true or:[aValueHolder == false]) ifTrue:[self halt].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
    meta notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
	meta removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    meta := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
    meta notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
	meta addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
9371
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   339
selectClass:aClass
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   340
    self selectedClasses value:(Array with:aClass)
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   341
!
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   342
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
selectedClassNameIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
    selectedClassNameIndices isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
	selectedClassNameIndices := #() asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
	selectedClassNameIndices addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
    ^ selectedClassNameIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
    "Created: / 5.2.2000 / 21:31:48 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    "Modified: / 5.2.2000 / 21:43:02 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
selectedClasses
12001
286aa33188ee comment/format in: #selectedClasses
Claus Gittinger <cg@exept.de>
parents: 11978
diff changeset
   355
    "bad name- it's a holder, baby"
9371
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   356
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
    ^ self selectionHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
selectedClasses:aValueHolder
9371
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   361
    "bad name- its a holder, baby"
d0828a270e10 added: #selectClass:
Claus Gittinger <cg@exept.de>
parents: 9204
diff changeset
   362
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    ^ self selectionHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
showClassPackages
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
    showClassPackages isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
	showClassPackages := false asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
	showClassPackages addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
    ^ showClassPackages.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
    "Created: / 24.2.2000 / 15:06:44 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
showClassPackages:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
    showClassPackages notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
	showClassPackages removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
    showClassPackages := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    showClassPackages notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
	showClassPackages addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    ].
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   384
!
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
   385
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   386
sortByNameAndInheritance
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   387
    sortByNameAndInheritance isNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   388
        sortByNameAndInheritance := false asValue.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   389
        sortByNameAndInheritance addDependent:self.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   390
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   391
    ^ sortByNameAndInheritance.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   392
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   393
    "Created: / 04-07-2011 / 18:28:15 / cg"
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   394
!
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   395
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   396
sortByNameAndInheritance:aValueHolder
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   397
    sortByNameAndInheritance notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   398
        sortByNameAndInheritance removeDependent:self
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   399
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   400
    sortByNameAndInheritance := aValueHolder.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   401
    sortByNameAndInheritance notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   402
        sortByNameAndInheritance addDependent:self
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   403
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   404
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   405
    "Created: / 04-07-2011 / 18:33:43 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
!ClassList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
classDefinitionChanged:aClassOrNil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
    listValid ifFalse:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
    slaveMode value == true ifTrue:[
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   415
	self invalidateList.
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   416
	^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
    self slaveMode value isNil ifTrue:[
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   419
	self window shown ifFalse:[
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   420
	    self invalidateList.
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   421
	    ^ self
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   422
	].
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
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
    aClassOrNil isNil ifTrue:[
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   426
	self halt:'should not happen'.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
    "/ if that class is in my list ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
    ((self classList value ? #()) contains:[:cls | cls notNil and:[cls theNonMetaclass name = aClassOrNil theNonMetaclass name]])
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
    ifTrue:[
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   432
	self updateListsFor:aClassOrNil.
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   433
	"/ force update
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   434
	self selectedClassNameIndices value:(self selectedClassNameIndices value).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   436
	((self selectedClasses value ? #()) contains:[:cls | cls notNil ifTrue:[cls theNonMetaclass name = aClassOrNil theNonMetaclass name] ifFalse:[false]]) 
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   437
	ifTrue:[
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   438
	    self updateOutputGenerator
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   439
	].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
    ] ifFalse:[
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   441
	self invalidateList
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    "Modified: / 29.2.2000 / 00:15:23 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
classRemoved:aClass
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
    |list|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
    list := self classList value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
    list notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
	(list includesIdentical:aClass) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
	    self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
    "Modified: / 25.2.2000 / 23:53:51 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
delayedUpdate:something with:aParameter from:changedObject
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   462
    |cls classes chgClass wg savedList|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
    classes := self classList value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
"/    (self slaveMode value == true) ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
"/    self slaveMode value isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
"/        self window shown ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
"/            self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
"/            ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
    changedObject == slaveMode ifTrue:[
12044
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   475
        "/ a previously suppressed update is now due
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   476
        listValid ~~ true ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   477
            self enqueueDelayedUpdateList.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   478
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   479
        self enqueueDelayedClassSelectionChanged.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   480
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
12044
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   483
    changedObject == self selectedClasses ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   484
        self inSlaveMode ifFalse:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   485
            savedList := self selectedClasses value.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   486
            lastSelectedClasses := nil.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   487
            listValid == true ifFalse:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   488
                self updateList
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   489
            ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   490
            self selectedClasses setValue:savedList.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   491
            self selectedClassesChanged.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   492
            self updateOutputGenerator.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   493
        ] ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   494
"/            listValid := false.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   495
            self selectedClassesChanged.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   496
        ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   497
        ^ self 
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   498
    ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   499
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   500
    (changedObject == meta 
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   501
    or:[changedObject == selectedClassNameIndices]) ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   502
        self inSlaveMode ifFalse:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   503
            self selectionChanged.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   504
        ] ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   505
            listValid := false.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   506
            self selectedClassesChanged.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   507
        ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   508
        ^ self
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   509
    ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   510
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   511
    self inSlaveModeOrInvisible ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   512
        self invalidateList.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   513
        ^ self.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   514
    ].
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   515
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
   516
    changedObject == environment ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   517
        something == #methodInClass ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   518
            ^ self "no interest" 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   519
        ].    
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   520
        something == #methodInClassRemoved ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   521
            "/ must update the list, if the methods package is different from
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   522
            "/ the classes package (to undo any has-exension highlighting)
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   523
            cls := aParameter first.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   524
            self updateListsFor:cls.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   525
            ^ self 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   526
        ].    
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   527
        something == #organization ifTrue:[^ self "no interest" ].    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   529
        (something == #classDefinition 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   530
        or:[something == #classVariables
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   531
        or:[something == #newClass]]) ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   532
            "/ update that class in my classList and the selection
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   533
            listValid ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   534
                self classDefinitionChanged:aParameter.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   535
            ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   536
            ^ self.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   537
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   538
        (something == #lastTestRunResult) ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   539
            "/ update that class in my classList and the selection
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   540
            listValid ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   541
                self updateListsFor:aParameter.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   542
                "/ self classDefinitionChanged:aParameter.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   543
            ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   544
            ^ self.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   545
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   546
        something == #classRemove ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   547
            "/ update my classList and the selection
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   548
            self classRemoved:aParameter.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   549
            ^ self.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   550
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   551
        something == #classRename ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   552
            "/ update that class in my classList and the selection
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   553
            listValid ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   554
                aParameter isArray ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   555
                    cls := aParameter at:1.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   556
                    self classDefinitionChanged:cls.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   557
                ]
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   558
            ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   559
            ^ self.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   560
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   562
        something == #projectOrganization ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   563
            aParameter isNil ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   564
                self invalidateList.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   565
                organizerMode value == #project ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   566
                    self enqueueDelayedUpdateOutputGenerator.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   567
                ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   568
                ^ self
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   569
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   571
            cls := aParameter at:1.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   572
            cls notNil ifTrue:[  "/ should not happen (but does occasionally)
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   573
                ((classes includes:cls theMetaclass)
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   574
                or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   575
                    self invalidateList.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   576
                    organizerMode value == #project ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   577
                        self enqueueDelayedUpdateOutputGenerator.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   578
                    ]
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   579
                ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   580
            ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   581
            ^ self
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   582
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   583
        ^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
    (something == #lastTestRunResult) ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   587
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
    changedObject == ChangeSet ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   591
        wg := self windowGroup.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   592
        wg isNil ifTrue:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   593
            changedObject removeDependent:self.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   594
        ] ifFalse:[
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   595
            "/ react on changes of the changeSet to recolorize items
11967
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   596
            ((something ~~ #addChange:)
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   597
                or:[ 
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   598
                    chgClass := aParameter changeClass.
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   599
                    chgClass notNil 
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   600
                    and:[ (classes includes:chgClass theNonMetaclass) 
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   601
                          or:[classes includes:chgClass theMetaclass]]
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   602
                ]
11967
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   603
            ) ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   604
                wg sensor 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   605
                    flushEventsFor:self 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   606
                    where:[:ev | ev isMessageSendEvent 
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   607
                                 and:[ev selector == #delayedUpdate:with:from:
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   608
                                 and:[(ev arguments at:3) == ChangeSet]]].
11967
09b72b540e24 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11955
diff changeset
   609
                self enqueueDelayedAction:[self reconstructNameList].
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   610
            ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   611
        ].
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   612
        ^ self 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   615
    changedObject == showClassPackages ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   616
        self classNameList value:nil.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   617
        self invalidateList.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   618
        ^ self 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
    (changedObject == hideUnloadedClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
    or:[changedObject == hidePrivateClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
    or:[changedObject == nameSpaceFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
    or:[changedObject == packageFilter]]]) ifTrue:[
9204
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   625
        self invalidateList.
0690de3bd379 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 9075
diff changeset
   626
        ^ self 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
    super delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
    "Modified: / 13.11.2001 / 11:32:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
enqueueDelayedClassSelectionChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    (NewSystemBrowser synchronousUpdate == true
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
    or:[ immediateUpdate value == true ])
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
    ifTrue:[
6716
4b255b8e6dfa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6712
diff changeset
   638
        self selectedClassesChanged.
4b255b8e6dfa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6712
diff changeset
   639
        ^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   641
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
    self enqueueMessage:#selectedClassesChanged for:self arguments:#()
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
getSelectedClassIndicesFromClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
    "the class selection has changed;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
     return a collection of selection-indices"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
    |classes selectedClasses numSelected|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
    classes := self classList value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
    selectedClasses := self selectedClasses value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
    numSelected := selectedClasses size.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
    numSelected == 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
	^ #()
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   658
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   659
    numSelected == classes size ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
	"/ all selected - easy
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
	^ (1 to:numSelected) asOrderedCollection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
    meta value ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
	classes := classes collect:[:eachClass | eachClass theMetaclass].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
    classes := selectedClasses collect:[:aSelectedClass | classes identityIndexOf:aSelectedClass.].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
    classes := classes select:[:idx | idx ~= 0].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    ^ classes
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    "Created: / 24.2.2000 / 19:47:52 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
getSelectedClassesFromIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
    "the selection-index collection has changed;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
     return a collection of corresponding classes"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
    |selected classes allEntrySelected isMeta anyLost selectedClassNameIndices|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
    allEntrySelected := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    classes := classList value.
7928
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   683
    classes isNil ifTrue:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   684
        self updateList.
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   685
        classes := classList value.
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   686
    ].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   687
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
    isMeta := meta value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
    anyLost := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
    selectedClassNameIndices := self selectedClassNameIndices value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
    selectedClassNameIndices size == classes size ifTrue:[
7928
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   693
        selectedClassNameIndices size == 0 ifTrue:[^ #()].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   694
        isMeta ifTrue:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   695
            ^ classes collect:[:eachClass | eachClass theMetaclass].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   696
        ].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   697
        ^ classes collect:[:eachClass | eachClass theNonMetaclass].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
    selected := selectedClassNameIndices 
7928
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   701
                    collect:[:idx |
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   702
                                |cls|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
7928
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   704
                                cls := classes at:idx.
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   705
                                cls == (self class nameListEntryForALL) ifTrue:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   706
                                    allEntrySelected := true.
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   707
                                ] ifFalse:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   708
                                    cls notNil ifTrue:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   709
                                        isMeta ifTrue:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   710
                                            cls := cls theMetaclass
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   711
                                        ] ifFalse:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   712
                                            cls := cls theNonMetaclass
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   713
                                        ].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   714
                                    ] ifFalse:[
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   715
                                        anyLost := true
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   716
                                    ].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   717
                                ].
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   718
                                cls
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   719
                            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
    anyLost ifTrue:[
7928
93623a1f78a6 getSelectedClass if there has not been a classList fetch yet
Claus Gittinger <cg@exept.de>
parents: 7743
diff changeset
   721
        selected := selected select:[:each | each notNil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   723
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
"/    allEntrySelected ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
"/        selected := classList value select:[:cls | cls ~~ AllEntry].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
"/        meta value ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
"/            selected := selected collect:[:cls | cls theMetaclass].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
"/        ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
"/            selected := selected collect:[:cls | cls theNonMetaclass].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
    ^ selected.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
    "Created: / 24.2.2000 / 19:43:37 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
selectedClassesChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
    |indices selectedClassNameIndicesHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   741
    self classList value size == 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   742
	"/ this may happen during early startup, 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   743
	"/ when invoked with a preset classSelection,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   744
	"/ and the classGenerator has not yet been setup
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   745
	"/ to not clobber the selection, defer the update
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
	"/ until the classList arrives ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
	^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   748
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   749
    "/ lastSelectedClasses := self selectedClasses value copy.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   750
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   751
    indices := self getSelectedClassIndicesFromClasses. 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   752
    selectedClassNameIndicesHolder := self selectedClassNameIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   753
    selectedClassNameIndicesHolder value ~= indices ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   754
	"/ in slaveMode, do not update selectedClasses from indices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   755
	true "slaveMode value" ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
	    selectedClassNameIndicesHolder value:indices withoutNotifying:self
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
	    selectedClassNameIndicesHolder value:indices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   762
    "Created: / 13.2.2000 / 22:18:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
    "Modified: / 24.2.2000 / 19:48:56 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
selectionChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
    "the lists selection has changed. Since the list uses indices,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
     update the corresponding selectedClasses collection"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
    |selected prevSelection selectedClassesHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   771
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
    selectedClassesHolder := self selectedClasses.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
    selected := self getSelectedClassesFromIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   775
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   776
    prevSelection := selectedClassesHolder value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   778
    prevSelection ~= selected ifTrue:[
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
   779
        selectedClassesHolder value:selected.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
selectionChangedByClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
    "we are not interested in that - get another notification
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
     via the changed valueHolder"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
    |selected master|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
    selected := self getSelectedClassesFromIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   790
    (selected = lastSelectedClasses and:[selected size == 1])
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   791
    ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
	"/ thats a kludge - we want to turn off the protocol selection,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
	"/ when a class is reselected.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
	masterApplication notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   796
	    master := masterApplication.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
	    masterApplication masterApplication notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
		master := masterApplication masterApplication.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   799
	    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
	    (master respondsTo:#classReselected) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
		master classReselected.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
	    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   803
	] 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
	lastSelectedClasses := selected copy.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   806
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   807
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   808
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
update:something with:aParameter from:changedObject
10367
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   810
    |cls sel mthd newMethod oldMethod idx classListValue|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
12044
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   812
    self inSlaveMode ifTrue:[
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   813
        something == #methodInClass ifTrue:[ ^ self ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   814
        something == #addChange:    ifTrue:[ self invalidateList. ^ self ].
11978
4ff5f53f23a9 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11967
diff changeset
   815
        something == #methodCoverageInfo ifTrue:[ self invalidateList. ^ self ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   816
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   817
"/    self window sensor isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
"/        "/ not visible ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
"/        self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
"/        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
    classListValue := classList value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
   825
    changedObject == environment ifTrue:[
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   826
        something == #classComment ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   827
            ^ self.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   828
        ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   829
        something == #methodDictionary ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   830
            ^ self 
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   831
        ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   832
        something == #methodTrap ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   833
            ^ self
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   834
        ].
11556
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   835
        something == #coverageInfo ifTrue:[
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   836
            listValid == true ifTrue:[
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   837
                self enqueueDelayedUpdateList
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   838
            ].
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   839
            ^ self.
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   840
        ].
10367
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   841
        something == #methodCoverageInfo ifTrue:[
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   842
            listValid == true ifTrue:[
11556
ca2117cbf0b5 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11259
diff changeset
   843
                mthd := aParameter.
10367
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   844
                cls := mthd mclass.
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   845
                cls notNil ifTrue:[
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   846
                    classListValue size > 0 ifTrue:[
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   847
                        ((classListValue includesIdentical:cls theNonMetaclass)
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   848
                        or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   849
                            self enqueueDelayedUpdateList
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   850
                        ]
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   851
                    ]
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   852
                ].
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   853
            ].
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   854
            ^ self
e5fdd1e9e79a changed:
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
   855
        ].
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   856
        something == #lastTestRunResult ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   857
            cls := aParameter at:1.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   858
            sel := aParameter at:2.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   859
            (cls notNil and:[sel isNil]) ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   860
                classListValue size > 0 ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   861
                    ((classListValue includesIdentical:cls theNonMetaclass)
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   862
                    or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   863
                        self enqueueDelayedUpdateList
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   864
                    ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   865
                ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   866
            ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   867
            ^ self
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   868
        ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   869
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   870
        something == #methodInClassRemoved ifTrue:[
12044
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   871
            self inSlaveMode ifFalse:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   872
                cls := aParameter at:1.
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   873
                cls notNil ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   874
                    classListValue size > 0 ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   875
                        ((classListValue includesIdentical:cls theNonMetaclass)
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   876
                        or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   877
                            self enqueueDelayedUpdateList
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   878
                        ]
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   879
                    ]
12044
154236f3c686 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12001
diff changeset
   880
                ].
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   881
            ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   882
            ^ self
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   883
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   884
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   885
        something == #methodInClass ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   886
            cls := aParameter at:1.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   887
            cls notNil ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   888
                classListValue size > 0 ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   889
                    ((classListValue includesIdentical:cls theNonMetaclass)
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   890
                    or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   891
                        newMethod := cls compiledMethodAt:(aParameter at:2).
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   892
                        oldMethod := aParameter at:3.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   893
                        ((oldMethod isNil
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   894
                            and:[newMethod package ~= cls package])
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   895
                        or:[oldMethod notNil
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   896
                            and:[newMethod package ~= oldMethod package]])
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   897
                        ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   898
                            "/ must update the list (for the package-info)
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   899
                            self enqueueDelayedUpdateList
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   900
                        ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   901
                    ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   902
                ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   903
            ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   904
            ^ self
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   905
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   906
6847
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   907
        "/ kludge: must be careful if my inGenerator is a constant list.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   908
        "/ in that case, I have to update it 
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   909
        "/ (sigh - all a consequence of not #becoming the new class)
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   910
        ((something == #classDefinition) or:[something == #newClass]) ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   911
            inGeneratorHolder value isOrderedCollection ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   912
                idx := inGeneratorHolder value findFirst:[:eachClass | eachClass name = aParameter theNonMetaclass name].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   913
                idx ~~ 0 ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   914
                    inGeneratorHolder value at:idx put:aParameter.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   915
                    self updateListsFor:aParameter.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   916
                    "/ self enqueueDelayedUpdateList.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   917
                ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   918
            ] ifFalse:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   919
                classListValue size > 0 ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   920
                    idx := classListValue findFirst:[:eachClass | eachClass name = aParameter theNonMetaclass name].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   921
                    idx ~~ 0 ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   922
                        listValid ifTrue:[
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   923
                            self classDefinitionChanged:aParameter.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   924
                            ^ self.
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   925
                        ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   926
                    ]
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   927
                ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   928
            ].
0a09faf8ed34 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6756
diff changeset
   929
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   931
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   932
    changedObject == sortByNameAndInheritance ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   933
        self invalidateList.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   934
        ^ self.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   935
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
   936
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   937
    super update:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   938
11561
842bae6ac117 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11556
diff changeset
   939
    "Modified: / 05-06-2012 / 23:39:34 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   940
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   941
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   942
!ClassList methodsFor:'drag & drop'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   943
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   944
canDropContext:aDropContext
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   945
    |objects|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   946
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   947
    objects := aDropContext dropObjects collect:[:obj | obj theObject].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   948
    (objects conform:[:anObject | anObject isMethod]) ifTrue:[
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   949
        |methods cls|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   950
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   951
        methods := objects.
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   952
        cls := self classAtTargetPointOf:aDropContext.
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   953
        cls isNil ifTrue:[^ false].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   954
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   955
        ^ methods contains:[:aMethod | aMethod mclass ~= cls]
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   956
    ].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   957
    (self objectsAreClassFiles:objects) ifTrue:[^ true].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   958
    ^ false.
7121
980f1b67485e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7055
diff changeset
   959
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   960
    "Modified: / 17-10-2006 / 18:26:07 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   961
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   962
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   963
classAtTargetPointOf:aDropContext
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   964
    |p classListView lineNr cls|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   965
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   966
    p := aDropContext targetPoint.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   967
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   968
    classListView := aDropContext targetWidget.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   969
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   970
    lineNr := classListView lineAtY:p y.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   971
    lineNr isNil ifTrue:[^ nil].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   972
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   973
    cls := classList value at:lineNr.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   974
    ^ cls
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   975
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   976
6468
8047fc185bd8 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6318
diff changeset
   977
doDropContext:aDropContext
8598
d4bb7770fc82 better drop
Claus Gittinger <cg@exept.de>
parents: 8274
diff changeset
   978
    |objects browser|
d4bb7770fc82 better drop
Claus Gittinger <cg@exept.de>
parents: 8274
diff changeset
   979
d4bb7770fc82 better drop
Claus Gittinger <cg@exept.de>
parents: 8274
diff changeset
   980
    browser := self masterApplication.
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   981
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   982
    objects := aDropContext dropObjects collect:[:aDropObject | aDropObject theObject].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   983
    (objects conform:[:something | something isMethod]) ifTrue:[
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   984
        |cls methods|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   985
7436
239642f1ae05 drop fix.
Claus Gittinger <cg@exept.de>
parents: 7424
diff changeset
   986
        methods := objects.
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   987
        cls := self classAtTargetPointOf:aDropContext.
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   988
        methods first mclass isMeta ifTrue:[
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   989
            cls := cls theMetaclass
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   990
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   991
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
   992
        cls notNil ifTrue:[
8945
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   993
            methods := methods reject:[:mthd | mthd mclass theNonMetaclass == cls theNonMetaclass].
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   994
            methods notEmpty ifTrue:[
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   995
                aDropContext dragType == DropContext dragTypeCopy ifTrue:[
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   996
                    browser copyMethods:methods toClass:cls.
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   997
                ] ifFalse:[
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   998
                    browser moveMethods:methods toClass:cls.
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
   999
                ].
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
  1000
            ]
7424
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1001
        ].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1002
        ^ self
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1003
    ].
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1004
    (objects conform:[:something | something isFilename]) ifTrue:[
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1005
        self dropClassFiles:objects.
cb6c951e5728 drag&drop:allow dropping st-files from the windows explorer
Claus Gittinger <cg@exept.de>
parents: 7121
diff changeset
  1006
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1007
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1008
7436
239642f1ae05 drop fix.
Claus Gittinger <cg@exept.de>
parents: 7424
diff changeset
  1009
    "Modified: / 21-10-2006 / 20:39:55 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1010
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1011
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1012
!ClassList methodsFor:'generators'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1013
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1014
makeGenerator
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1015
    "return a generator which enumerates the method categories from the selected class;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1016
     that generator generates 2-element elements (includes the class), in order
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1017
     to make the consumers only depend on one input (i.e. no need for another
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1018
     classHolder in the methodList)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1019
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1020
    ^ Iterator 
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1021
        on:[:whatToDo |
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1022
                |allEntry classes cls already anyMethod packages classIsInPackage 
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1023
                 showChanged changedClasses|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1024
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1025
                allEntry := self class nameListEntryForALL.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1026
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1027
                classes := self selectedClasses value ? #().
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1028
                packages := packageFilter value value.
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1029
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1030
                (packages notNil and:[packages includes:allEntry]) ifTrue:[packages := nil].
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1031
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1032
                showChanged := packages notNil and:[packages includes:NavigatorModel nameListEntryForChanged].
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1033
                showChanged ifTrue:[
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1034
                    changedClasses := ChangeSet current changedClasses.
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1035
                ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1036
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1037
                classes do:[:cls |
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1038
                    (cls notNil and:[cls ~~ allEntry]) ifTrue:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1039
                        anyMethod := false.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1040
                        classIsInPackage := packages isNil 
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1041
                                            or:[(packages includes:cls package)
11938
2520fe691d4d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 11918
diff changeset
  1042
                                            or:[ showChanged and:[changedClasses includes:cls]] ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1043
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1044
                        cls theNonMetaclass isJavaClass ifTrue:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1045
                            cls isMeta ifTrue:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1046
                                whatToDo value:cls theNonMetaclass value:(self class nameListEntryForStatic).
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1047
                            ] ifFalse:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1048
                                whatToDo value:cls value:(self class nameListEntryForNonStatic).
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1049
                            ]
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1050
                        ] ifFalse:[
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1051
                            cls supportsMethodCategories ifFalse:[
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1052
                                whatToDo value:cls value:(self class nameListEntryForNILCategory).
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1053
                            ] ifTrue:[
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1054
                                already := Set new.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1055
                                cls methodDictionary keysAndValuesDo:[:sel :mthd |
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1056
                                    |cat|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1057
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1058
                                    cat := mthd category.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1059
                                    (already includes:cat) ifFalse:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1060
                                        (classIsInPackage
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1061
                                            or:[packages isNil
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1062
                                            or:[(packages includes:mthd package) ]])
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1063
                                        ifTrue:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1064
                                            already add:cat.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1065
                                            whatToDo value:cls value:cat.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1066
                                        ]
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1067
                                    ]
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1068
                                ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1069
                            ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1070
                        ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1071
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1072
                        anyMethod ifFalse:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1073
                            "/ tell the one below, which classes are seen here,
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1074
                            "/ (even if no method is present)
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1075
                            "/ to allow him to decide if the className is to be shown in the list
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1076
                            whatToDo value:cls value:nil.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1077
                        ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1078
                    ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1079
                ].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1080
          ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1081
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1082
    "Modified: / 24.2.2000 / 23:18:26 / cg"
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1083
!
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1084
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1085
makeGeneratorForMethods
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1086
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1087
    ^ Iterator 
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1088
        on:[:whatToDo |
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1089
                |allEntry classes cls already packages classIsInPackage 
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1090
                 showChanged changedClasses cat |
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1091
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1092
                allEntry := self class nameListEntryForALL.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1093
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1094
                classes := self selectedClasses value ? #().
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1095
                packages := packageFilter value value.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1096
                (packages notNil and:[packages includes:allEntry]) ifTrue:[packages := nil].
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1097
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1098
                showChanged := packages notNil and:[packages includes:NavigatorModel nameListEntryForChanged].
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1099
                showChanged ifTrue:[
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1100
                    changedClasses := ChangeSet current changedClasses.
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1101
                ].
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1102
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1103
                classes do:[:cls |
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1104
                    (cls notNil and:[cls ~~ allEntry]) ifTrue:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1105
                        classIsInPackage := packages isNil 
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1106
                                            or:[(packages includes:cls package)
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  1107
                                            or:[ showChanged and:[changedClasses includes:cls]] ].
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1108
                        cls isMeta ifTrue:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1109
                            cat := self class nameListEntryForStatic.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1110
                        ] ifFalse:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1111
                            cat := self class nameListEntryForNonStatic.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1112
                        ].
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1113
                        cls methodDictionary keysAndValuesDo:[:sel :mthd |
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1114
                            whatToDo value:cls value:cat value:sel value:mthd.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1115
                        ].                            
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1116
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1117
                    ].
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1118
                ].
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1119
          ]
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1120
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1121
    "Modified: / 24-02-2000 / 23:18:26 / cg"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1122
    "Created: / 07-08-2011 / 19:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1123
!
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1124
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1125
outGeneratorHolderForMethods
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1126
    ^ outGeneratorHolderForMethods
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1127
!
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1128
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1129
outGeneratorHolderForMethods:something
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1130
    outGeneratorHolderForMethods := something.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1131
!
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1132
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1133
updateOutputGenerator
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1134
    "create a generator which enumerates my elements, 
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1135
     and place it into the outputGenerator holder"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1136
11918
46ef9b23af7a fixes to allow viewing all vs extensions in a
Claus Gittinger <cg@exept.de>
parents: 11881
diff changeset
  1137
    super updateOutputGenerator.
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1138
    outGeneratorHolderForMethods notNil ifTrue:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1139
        outGeneratorHolderForMethods value: self makeGeneratorForMethods.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1140
    ].
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1141
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1142
    "Modified: / 04-02-2000 / 17:16:34 / cg"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1143
    "Created: / 05-02-2000 / 13:42:08 / cg"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1144
    "Created: / 07-08-2011 / 18:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1145
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1146
11259
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1147
!ClassList methodsFor:'initialize-release'!
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1148
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1149
release
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1150
    super release.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1151
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1152
    currentNamespace removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1153
    sortByNameAndInheritance removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1154
    hidePrivateClasses removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1155
    markApplicationsHolder removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1156
    meta removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1157
    selectedClassNameIndices removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1158
    showClassPackages removeDependent:self.
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1159
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1160
    "Created: / 05-02-2000 / 13:42:18 / cg"
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1161
! !
088e5db972c6 category of: #release
Claus Gittinger <cg@exept.de>
parents: 10529
diff changeset
  1162
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1163
!ClassList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1164
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1165
listOfClasses
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1166
    |classesAlready classesOrdered generator nameSpaceFilter packageFilter allName hidePrivate
9761
e6c76a75fcf4 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9759
diff changeset
  1167
     privateClassesPerClass nameFilterIncludesMatchCharacters lcNameFilter|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1168
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1169
    self sortByNameAndInheritance value ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1170
        ^ self listOfClassesByInheritance
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1171
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1172
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1173
    allName := self class nameListEntryForALL.
7708
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1174
    (self showAllClassesInNameSpaceOrganisation value) ifFalse:[
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1175
        nameSpaceFilter := self nameSpaceFilter value.
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1176
        nameSpaceFilter notNil ifTrue:[
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1177
            (nameSpaceFilter includes:allName) ifTrue:[
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1178
                nameSpaceFilter := nil
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1179
            ].
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1180
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1181
    ].
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1182
"/    packageFilter := self packageFilter value.
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1183
"/    packageFilter notNil ifTrue:[
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1184
"/        (packageFilter includes:allName) ifTrue:[packageFilter := nil].
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1185
"/    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1186
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1187
    inGeneratorHolder isNil ifTrue:[
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1188
        "/ for standAlone testing
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1189
        generator := environment allClasses.
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1190
        (self hideUnloadedClasses value) ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1191
            generator := generator select:[:cls | cls isLoaded]
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1192
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1193
    ] ifFalse:[
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1194
        generator := inGeneratorHolder value.
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1195
        generator isNil ifTrue:[^ #() ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1196
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1197
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1198
    classesAlready := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1199
    classesOrdered := OrderedCollection new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1200
    hidePrivate := self hidePrivateClasses value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1201
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1202
    privateClassesPerClass := IdentityDictionary new.
9759
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1203
    nameFilterIncludesMatchCharacters := nameFilter notNil and:[nameFilter includesMatchCharacters].
9761
e6c76a75fcf4 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9759
diff changeset
  1204
    nameFilter notNil ifTrue:[ lcNameFilter := nameFilter asLowercase].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1205
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1206
    generator do:[:cls | 
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1207
        |owner bucket|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1208
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1209
        "JV@2011-08-07: FIXME: Ugly code, hard to extend!! And duplicated in listOfClassesByInheritance !!!!!!!!"            
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1210
        (hidePrivate not or:[cls isPrivate not])
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1211
        ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1212
            (nameSpaceFilter isNil
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1213
            or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1214
                (packageFilter isNil
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1215
                or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1216
                    (classesAlready includes:cls) ifFalse:[
8167
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  1217
                        (classFilterBlock isNil
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  1218
                        or:[(classFilterBlock value:cls)]) ifTrue:[
8166
f90857fb2227 added a rejectedPackages filter
Claus Gittinger <cg@exept.de>
parents: 8072
diff changeset
  1219
                            classesAlready add:cls.
9759
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1220
                            (nameFilter isNil 
9761
e6c76a75fcf4 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9759
diff changeset
  1221
                              or:[ (nameFilterIncludesMatchCharacters not and:[ cls name asLowercase startsWith:lcNameFilter])
13442
df9b36d0a370 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 13095
diff changeset
  1222
                              or:[ (nameFilterIncludesMatchCharacters and:[nameFilter match:cls name caseSensitive:false]) ]]) ifTrue:[
9759
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1223
                                (owner := cls owningClass) notNil ifTrue:[
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1224
                                    bucket := privateClassesPerClass 
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1225
                                                    at:owner 
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1226
                                                    ifAbsentPut:[SortedCollection new 
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1227
                                                                    sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1228
                                    bucket add:cls.
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1229
                                ] ifFalse:[
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1230
                                    "Do not show Java anonymous classes"
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1231
                                    cls isJavaClass ifTrue:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1232
                                        cls isAnonymous ifFalse:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1233
                                            classesOrdered add:cls.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1234
                                        ]                                            
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1235
                                    ] ifFalse:[                                        
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1236
                                        classesOrdered add:cls.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1237
                                    ]                                            
9759
c4a477dec173 changed: #listOfClasses
Claus Gittinger <cg@exept.de>
parents: 9471
diff changeset
  1238
                                ]
8166
f90857fb2227 added a rejectedPackages filter
Claus Gittinger <cg@exept.de>
parents: 8072
diff changeset
  1239
                            ]
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1240
                        ]
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1241
                    ]
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1242
                ]
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1243
            ]
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1244
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1245
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1246
8263
aa99dcc68272 oops - care for private classes in the list, for
Michael Beyl <mb@exept.de>
parents: 8167
diff changeset
  1247
    "/ are there any private classes, for which the owner is not in the list ?
aa99dcc68272 oops - care for private classes in the list, for
Michael Beyl <mb@exept.de>
parents: 8167
diff changeset
  1248
    privateClassesPerClass keysAndValuesDo:[:eachOwnerClass :privateClasses|
8274
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1249
        (classesAlready includes:eachOwnerClass) ifFalse:[
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1250
            classesOrdered add:eachOwnerClass.
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1251
            classesAlready add:eachOwnerClass.
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1252
"/            privateClasses do:[:privateClass |
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1253
"/                (classesOrdered includes:privateClass) ifFalse:[
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1254
"/                    classesOrdered add:privateClass.
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1255
"/                ].
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1256
"/            ].
8263
aa99dcc68272 oops - care for private classes in the list, for
Michael Beyl <mb@exept.de>
parents: 8167
diff changeset
  1257
        ].
aa99dcc68272 oops - care for private classes in the list, for
Michael Beyl <mb@exept.de>
parents: 8167
diff changeset
  1258
    ].
aa99dcc68272 oops - care for private classes in the list, for
Michael Beyl <mb@exept.de>
parents: 8167
diff changeset
  1259
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1260
    classesOrdered size == 1 ifTrue:[
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1261
        self classLabelHolder value:(classesOrdered first name)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1262
    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1263
"/        self classLabelHolder value:(classes size printString , ' classes').
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1264
        sortBy value ~~ #doNotSort ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1265
            classesOrdered sort:[:a :b | a name < b name].
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1266
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1267
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1268
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1269
    privateClassesPerClass notEmpty ifTrue:[
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1270
        |stream action|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1272
        stream := WriteStream on:(Array new).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1273
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1274
        action := 
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1275
            [:eachClass |
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1276
                |bucket|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1277
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1278
                stream nextPut:eachClass.
8274
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1279
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1280
                bucket := privateClassesPerClass at:eachClass ifAbsent:nil.
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1281
                bucket notNil ifTrue:[
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1282
                    bucket do:action.
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1283
                ]
8752
8fbdb8d11b49 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8598
diff changeset
  1284
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1285
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1286
        classesOrdered do:action.
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1287
        classesOrdered := stream contents.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1288
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1289
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1290
"/
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1291
"/ does not work (yet)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1292
"/    classes addFirst:AllEntry.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1293
    ^ classesOrdered
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1294
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1295
    "Modified: / 04-07-2011 / 18:33:56 / cg"
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1296
    "Modified (format): / 07-08-2011 / 16:02:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1297
!
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1298
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1299
listOfClassesByInheritance
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1300
    "TODO: needs refatoring and common code extract with listOfClasses,
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1301
     but I have no time at the moment..."
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1302
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1303
    |classesAlready classes classesOrdered generator nameSpaceFilter packageFilter allName hidePrivate
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1304
     privateClassesPerClass nameFilterIncludesMatchCharacters lcNameFilter|
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1305
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1306
    allName := self class nameListEntryForALL.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1307
    nameSpaceFilter := self nameSpaceFilter value.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1308
    nameSpaceFilter notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1309
        (nameSpaceFilter includes:allName) ifTrue:[nameSpaceFilter := nil].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1310
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1311
    packageFilter := self packageFilter value.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1312
    packageFilter notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1313
        (packageFilter includes:allName) ifTrue:[packageFilter := nil].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1314
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1315
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1316
    inGeneratorHolder isNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1317
        "/ for standAlone testing
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1318
        generator := environment allClasses.
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1319
        (self hideUnloadedClasses value) ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1320
            generator := generator select:[:cls | cls isLoaded]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1321
        ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1322
    ] ifFalse:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1323
        generator := inGeneratorHolder value.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1324
        generator isNil ifTrue:[^ #() ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1325
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1326
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1327
    classesAlready := IdentitySet new.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1328
    classes := Set new.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1329
    classesOrdered := OrderedCollection new.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1330
    hidePrivate := self hidePrivateClasses value.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1331
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1332
    privateClassesPerClass := IdentityDictionary new.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1333
    nameFilterIncludesMatchCharacters := nameFilter notNil and:[nameFilter includesMatchCharacters].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1334
    nameFilter notNil ifTrue:[ lcNameFilter := nameFilter asLowercase].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1335
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1336
    generator do:[:cls | 
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1337
        |owner bucket|
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1338
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1339
        (hidePrivate not or:[cls isPrivate not])
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1340
        ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1341
            (nameSpaceFilter isNil
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1342
            or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1343
                (packageFilter isNil
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1344
                or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1345
                    (classesAlready includes:cls) ifFalse:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1346
                        classesAlready add:cls.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1347
                        (owner := cls owningClass) notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1348
                            bucket := privateClassesPerClass at:owner ifAbsentPut:[SortedCollection new sortBlock:[:a :b | a name < b name] ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1349
                                bucket add:cls.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1350
                            ] ifFalse:[
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1351
                                cls isJavaClass ifTrue:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1352
                                    cls isAnonymous ifFalse:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1353
                                        classes add:cls.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1354
                                    ]
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1355
                                ] ifFalse:[
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1356
                                   classes add:cls.
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1357
                                ]                                    
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1358
                        ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1359
                    ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1360
                ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1361
            ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1362
        ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1363
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1364
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1365
    privateClassesPerClass keysAndValuesDo:
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1366
        [:owner :privateClasses|
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1367
        (owner isPrivate not and:[(classes includes: owner) not])            
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1368
            ifTrue:[classes addAll: privateClasses]].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1369
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1370
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1371
    classes size == 1 ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1372
        classesOrdered := classes asArray.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1373
        self classLabelHolder value:(classes first name)
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1374
    ] ifFalse:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1375
"/        self classLabelHolder value:(classes size printString , ' classes').
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1376
"        sortBy value ~~ #doNotSort ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1377
            classesOrdered sort:[:a :b | a name < b name].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1378
        ]"
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1379
        classesOrdered := ClassSorter sort: classes.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1380
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1381
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1382
    privateClassesPerClass notEmpty ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1383
        |stream action|
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1384
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1385
        stream := WriteStream on:(Array new).
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1386
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1387
        action := [:eachClass |
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1388
                |bucket|
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1389
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1390
                stream nextPut:eachClass.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1391
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1392
                bucket := privateClassesPerClass at:eachClass ifAbsent:nil.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1393
                bucket notNil ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1394
                    bucket do:action.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1395
                ]
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1396
        ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1397
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1398
        classesOrdered do:action.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1399
        classesOrdered := stream contents.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1400
    ].
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1401
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1402
"/
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1403
"/ does not work (yet)
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1404
"/    classes addFirst:AllEntry.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1405
    ^ classesOrdered
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1406
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1407
    "Modified: / 18-08-2000 / 20:34:10 / cg"
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1408
    "Modified: / 21-01-2008 / 19:43:04 / janfrog"
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1409
    "Modified: / 24-08-2010 / 20:17:07 / Jan Vrany <enter your email here>"
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1410
    "Created: / 04-07-2011 / 18:27:34 / cg"
10529
bf7dcbf92471 Improvement in system browser: when no one of selected classes supports
vrany
parents: 10421
diff changeset
  1411
    "Modified: / 07-08-2011 / 16:14:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1412
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1413
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1414
makeDependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1415
    environment addDependent:self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1416
    ChangeSet addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1417
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1418
    "Created: / 5.2.2000 / 13:42:17 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1419
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1420
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1421
makeIndependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1422
    environment removeDependent:self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1423
    ChangeSet removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1424
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1425
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1426
nameListForClasses:aClassList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1427
    |orgMode namespaces showNamespaces fullNameList nameList
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1428
     filteredPackages filteredNameSpaces classesInRemoteChangeSet
7708
c092f31d0d8f search speedup
Claus Gittinger <cg@exept.de>
parents: 7555
diff changeset
  1429
     classNamesInChangeSet classNamesInRemoteChangeSet|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1430
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1431
    showNamespaces := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1432
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1433
    filteredNameSpaces := nameSpaceFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1434
    (filteredNameSpaces isNil 
6738
8226c7e2907b magic constants (organizerMode) removed
Claus Gittinger <cg@exept.de>
parents: 6716
diff changeset
  1435
    and:[self organizerMode value ~~ OrganizerCanvas organizerModeNamespace]) ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1436
        showNamespaces := true.       "/ if no filter, always show the namespace.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1437
    ] ifFalse:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1438
        (filteredNameSpaces size > 1 
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1439
        or:[(filteredNameSpaces size > 0)
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1440
            and:[filteredNameSpaces includes:(self class nameListEntryForALL)]]) ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1441
            showNamespaces := true
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1442
        ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1443
            "/ if there are classes from multiple namespaces,
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1444
            "/ show the full name
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1445
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1446
            namespaces := IdentitySet new.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1447
            fullNameList := OrderedCollection new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1448
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1449
            aClassList
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1450
                do:[:cls | |nm|
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1451
                    nm := cls nameInBrowser.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1452
                    fullNameList add:nm.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1453
                    namespaces add:cls topNameSpace.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1454
                ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1455
            showNamespaces := namespaces size > 1
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1456
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1457
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1458
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1459
    orgMode := organizerMode value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1460
    filteredPackages := packageFilter value value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1461
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1462
    classNamesInChangeSet := ChangeSet current changedClasses
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1463
                                collect:[:each | each theNonMetaclass name].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1464
7503
2bfbc25a5601 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7436
diff changeset
  1465
    classesInRemoteChangeSet := SmallTeam isNil ifTrue:[#()] ifFalse:[ SmallTeam changedClasses ].
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1466
    classNamesInRemoteChangeSet := classesInRemoteChangeSet collect:[:each | each theNonMetaclass name].
7503
2bfbc25a5601 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7436
diff changeset
  1467
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1468
    nameList := aClassList 
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1469
                    collect:[:cls | 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1470
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1471
                            |className nm pkg emPkg hasExtensions isInChangeSet isInRemoteChangeSet icon
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1472
                             clr|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1473
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1474
                            className := cls theNonMetaclass name.
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1475
                            isInChangeSet := classNamesInChangeSet includes:className.
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1476
                            isInRemoteChangeSet := classNamesInRemoteChangeSet includes:className.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1477
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1478
                            nm := self nameListEntryFor:cls withNameSpace:showNamespaces.
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1479
9437
51e7a4cd63ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9434
diff changeset
  1480
                            self showCoverageInformation value ifTrue:[
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1481
                                clr := self colorForCoverageInformationOfClass:cls.
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1482
                                clr notNil ifTrue:[
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1483
                                    nm := self colorize:nm with:#color -> clr
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1484
                                ].
11955
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1485
                            ].
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1486
                            clr isNil ifTrue:[
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1487
                                isInChangeSet ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1488
                                    nm := self emphasizeForChangedCode:nm
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1489
                                ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1490
                                isInRemoteChangeSet ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1491
                                    nm := (self colorizeForChangedCodeInSmallTeam:'!! '),nm
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1492
                                ].
7503
2bfbc25a5601 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7436
diff changeset
  1493
                            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1494
6916
2c11bc208945 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6902
diff changeset
  1495
                            pkg := cls package ? '-'.
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1496
                            hasExtensions := cls hasExtensions.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1497
                            hasExtensions ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1498
                                emPkg := self emphasizeForDifferentPackage:'+'. "/ self emphasizeForDifferentPackage:pkg.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1499
                            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1500
6738
8226c7e2907b magic constants (organizerMode) removed
Claus Gittinger <cg@exept.de>
parents: 6716
diff changeset
  1501
                            orgMode == OrganizerCanvas organizerModeProject ifTrue:[
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1502
                                (filteredPackages notNil
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1503
                                and:[(filteredPackages includes:cls package) not]) ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1504
                                    "/ class is in another packae;
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1505
                                    "/ however, class is listed due to methods
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1506
                                    "/ in the filtered package
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1507
                                    hasExtensions ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1508
                                        nm := nm , emPkg.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1509
                                    ] ifFalse:[    
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1510
                                        nm := nm , ' [ ' , pkg, ' ]'.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1511
                                    ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1512
                                ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1513
                                    "/ any methods from other packages in this class ?
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1514
                                    hasExtensions ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1515
                                        nm := nm , (self emphasizeForDifferentPackage:'+').
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1516
                                    ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1517
                                ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1518
                            ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1519
                                showClassPackages value == true ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1520
                                    "/ add the package;
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1521
                                    hasExtensions ifTrue:[
6006
6bc518b7aa2f *** empty log message ***
ca
parents: 5950
diff changeset
  1522
                                        nm := nm , ' [ ' , pkg, ' ]' , (self emphasizeForDifferentPackage:'+').
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1523
"/                                        isInChangeSet ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1524
"/                                            nm := self colorizeForDifferentPackage:nm
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1525
"/                                        ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1526
                                    ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1527
                                        nm := nm , (self colorizeGrey:(' [ ' , pkg, ' ]')).
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1528
                                    ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1529
                                ] ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1530
                                    hasExtensions ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1531
                                        nm := nm , emPkg.
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1532
"/                                        isInChangeSet ifFalse:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1533
"/                                            nm := self colorizeForDifferentPackage:nm
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1534
"/                                        ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1535
                                    ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1536
                                ]
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1537
                            ].
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1538
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1539
                            isInChangeSet ifTrue:[
7055
9adf6744b244 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6916
diff changeset
  1540
                                nm := nm , self class markForBeingInChangeList
6879
92a0a6d1dffd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6847
diff changeset
  1541
                            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1542
"/                                        cls isVisualStartable ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1543
"/                                            nm := LabelAndIcon icon:((SystemBrowser visualStartableClassIcon)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1544
"/                                                                    onDevice:self window device)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1545
"/                                                               string:nm
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1546
"/                                        ].
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1547
                            markApplicationsHolder value== true ifTrue:[
6902
8a358228c2a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6879
diff changeset
  1548
                                icon := self iconForClass:cls theNonMetaclass.
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1549
                                icon isNil ifTrue:[
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1550
                                    icon := SystemBrowser emptyIcon
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1551
                                ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1552
                                nm := LabelAndIcon icon:icon string:nm
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1553
5950
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1554
                            ].
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1555
                            nm
6bcc39c4e1ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
  1556
                       ].   
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1557
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1558
    ^ nameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1559
11945
cf6443ca4542 changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11938
diff changeset
  1560
    "Modified: / 27-10-2012 / 12:32:20 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1561
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1562
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1563
reconstructNameList
8274
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1564
    "only reconstruct the names - class list & selection remains unschanged.
31eb11f780e7 ST/X Bug 830 - Private class in private class list of SystemBrowser
Claus Gittinger <cg@exept.de>
parents: 8263
diff changeset
  1565
     Invoked when the organizerMode mode changes"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1566
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1567
    |prevMode listView oldNameList newNameList sav|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1568
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1569
    self classList value isNil ifTrue:[
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1570
        self updateList
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1571
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1572
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1573
    newNameList := self nameListForClasses:(classList value ? #()).
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1574
    oldNameList := self classNameList value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1575
    (newNameList 
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1576
        sameContentsAs: oldNameList 
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1577
        whenComparedWith:[:a :b | (a sameStringAndEmphasisAs: b) 
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1578
                                  and:[ a hasImage == b hasImage
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1579
                                  and:[ a hasIcon == b hasIcon ]]]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1580
    ) 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1581
    ifTrue:[
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1582
        "/ no need to update
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1583
    ] ifFalse:[
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1584
        builder notNil ifTrue:[
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1585
            listView := builder componentAt:#List.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1586
        ].
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1587
        (listView isNil or:[listView scrolledView isNil]) ifTrue:[    
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1588
            "/ invoked very early during setup
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1589
            self classNameList value:newNameList
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1590
        ] ifFalse:[
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1591
            "/ avoid flicker and useless redraws
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1592
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1593
            prevMode := listView scrollWhenUpdating.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1594
            listView scrollWhenUpdating:nil.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1595
8072
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1596
            "/ this will lead to a selectionIndex change (done by the selListView);
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1597
            "/ however, we dont want this here, since it recurses into
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1598
            "/ a selectionChange. Therefore, temporarily disconnect the selectionIndexHolder...
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1599
            [
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1600
                self selectedClassNameIndices removeDependent:self.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1601
                "/ also, dont want a callback (selectionChangedByClick)
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1602
                sav := listView action.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1603
                listView action:nil.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1604
                self classNameList value:newNameList.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1605
            ] ensure:[
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1606
                listView action:sav.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1607
                self selectedClassNameIndices addDependent:self.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1608
                listView scrollWhenUpdating:prevMode.
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1609
            ].
313da6c692f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8011
diff changeset
  1610
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1611
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1612
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1613
    "Modified: / 31.10.2001 / 11:33:21 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1614
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1615
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1616
updateClassesIn:aCollection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1617
    "replace any obsolete class in aCollection;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1618
     return true, if any was found"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1619
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1620
    |found meta classes|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1621
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1622
    found := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1623
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1624
    aCollection isSequenceable ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1625
	classes := aCollection copy.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1626
	aCollection removeAll.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1627
	classes do:[:cls |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1628
	    |newClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1629
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1630
	    meta := cls isMeta.
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1631
	    newClass := environment at:(cls theNonMetaclass name).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1632
	    newClass isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1633
		newClass := cls
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1634
	    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1635
		meta ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1636
		    newClass := newClass class
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1637
		]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1638
	    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1639
	    found := cls ~~ newClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1640
	    aCollection add:newClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1641
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1642
    ] ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1643
	aCollection keysAndValuesDo:[:idx :cls |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1644
	    |newClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1645
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1646
	    cls notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1647
		meta := cls isMeta.
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1648
		newClass := environment at:(cls theNonMetaclass name).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1649
		newClass isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1650
		    newClass := cls
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1651
		] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1652
		    meta ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1653
			newClass := newClass class
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1654
		    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1655
		].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1656
		found := cls ~~ newClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1657
		aCollection at:idx put:newClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1658
	    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1659
	].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1660
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1661
    ^ found
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1662
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1663
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1664
updateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1665
    |prevSelection oldList newList newSelectionIndices 
6712
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1666
     forceSelectionChange selectedClassNameIndicesHolder classList
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1667
     classesAddedToList classesRemovedFromList newSet oldSet|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1668
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1669
    newList := self listOfClasses.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1670
    classList := self classList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1671
    oldList := classList value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1672
6712
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1673
    autoSelect == true ifTrue:[
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1674
        classesRemovedFromList := OrderedCollection new.
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1675
        newSet := newList asSet.
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1676
        oldSet := oldList asSet.
13095
7a28499914b1 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12579
diff changeset
  1677
        classesAddedToList := newSet reject:[:eachNewClass | (oldSet includes:eachNewClass)].
7a28499914b1 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12579
diff changeset
  1678
        classesRemovedFromList := oldSet reject:[:eachOldClass | (newSet includes:eachOldClass)].
6712
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1679
    ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1680
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1681
    (newList ~= oldList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1682
    or:[self classNameList value isNil and:[newList size > 0]]) ifTrue:[
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1683
        prevSelection := lastSelectedClasses ? #().
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1684
        prevSelection := prevSelection select:[:each | each notNil].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1685
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1686
        (newList collect:[:each | each name]) = (oldList collect:[:each | each name]) ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1687
            "/ no need to tell anybody
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1688
            classList setValue:newList.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1689
        ] ifFalse:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1690
            classList value:newList.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1691
        ].
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1692
        self reconstructNameList.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1693
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1694
        (prevSelection size == 0 
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1695
        and:[self selectedClasses value size ~~ 0]) ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1696
            "/ this happens during early startup time,
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1697
            "/ when the selection is already (pre-)set,
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1698
            "/ and the classList is generated the first time
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1699
            "/ (i.e. when opened with preset selection)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1700
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1701
            "/ do not clobber the selection in this case.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1702
            prevSelection := self selectedClasses value.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1703
            prevSelection := prevSelection select:[:cls | cls notNil].
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1704
            "/ simulate a change, to force selection update in listView
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1705
            forceSelectionChange := true.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1706
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1707
6712
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1708
        autoSelect == true ifTrue:[
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1709
            prevSelection isNil ifTrue:[
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1710
                prevSelection := OrderedCollection new
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1711
            ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1712
            prevSelection := prevSelection asOrderedCollection.
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1713
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1714
            classesAddedToList do:[:eachNewClass |
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1715
                (prevSelection includes:eachNewClass) ifFalse:[
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1716
                    prevSelection add:eachNewClass.
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1717
                ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1718
            ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1719
            classesRemovedFromList do:[:eachOldClass |
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1720
                prevSelection remove:eachOldClass ifAbsent:[].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1721
            ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1722
        ].
b044694deb7d autoselect feature
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1723
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1724
        newSelectionIndices := prevSelection 
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1725
                            collect:[:item | |cls|
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  1726
                                             cls := environment at:item theNonMetaclass name.   
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1727
                                             newList identityIndexOf:cls]
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1728
                            thenSelect:[:index | index ~~ 0].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1729
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1730
        selectedClassNameIndicesHolder := self selectedClassNameIndices.
6749
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1731
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1732
        ((selectedClassNameIndicesHolder value size ~~ self selectedClasses value size)
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1733
        or:[newSelectionIndices ~= selectedClassNameIndicesHolder value])
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1734
        ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1735
            newSelectionIndices notEmpty ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1736
                "/ force change (for dependents)
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1737
                "/ selectedClassNameIndicesHolder value:newSelectionIndices.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1738
            ] ifFalse:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1739
                prevSelection := self selectedClasses value.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1740
                newSelectionIndices := #().
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1741
            ].
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1742
            selectedClassNameIndicesHolder value:newSelectionIndices.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1743
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1744
            prevSelection notNil ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1745
                lastSelectedClasses := prevSelection.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1746
            ].
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1747
            self updateOutputGenerator.
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1748
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1749
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1750
    ] ifFalse:[
6318
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1751
        "/ same classes - but name(s) could be differnet
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1752
        newList size > 0 ifTrue:[
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1753
            self reconstructNameList
9a3fc13f86be care for non-existing class in selection
Claus Gittinger <cg@exept.de>
parents: 6208
diff changeset
  1754
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1755
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1756
    listValid := true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1757
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1758
    "Created: / 5.2.2000 / 13:42:18 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1759
    "Modified: / 31.10.2001 / 11:35:39 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1760
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1761
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1762
updateListsFor:aClass
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1763
    |classes found foundInSelection|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1764
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1765
    found := foundInSelection := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1766
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1767
    "/ update for a changed class in the classList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1768
    (classes := classList value) size > 0 ifTrue:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1769
        (self updateClassesIn:classes) ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1770
            found := true
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1771
        ].
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1772
        (classes includes:nil) ifTrue:[
7985
96270f424059 changed #updateListsFor:
Claus Gittinger <cg@exept.de>
parents: 7984
diff changeset
  1773
"/ self halt:'should not happen'.
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1774
            classList value:(classes := classes select:[:each | each notNil]).
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1775
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1776
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1777
    "/ possibly in the generator
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1778
    ((classes := inGeneratorHolder value) isOrderedCollection 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1779
    and:[classes size > 0]) ifTrue:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1780
        (self updateClassesIn:classes) ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1781
            found := true
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1782
        ].
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1783
        (classes includes:nil) ifTrue:[
7985
96270f424059 changed #updateListsFor:
Claus Gittinger <cg@exept.de>
parents: 7984
diff changeset
  1784
"/ self halt:'should not happen'.
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1785
            inGeneratorHolder value:(classes select:[:each | each notNil]).
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1786
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1787
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1788
    "/ and in the selection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1789
    (classes := self selectedClasses value) size > 0 ifTrue:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1790
        (self updateClassesIn:classes) ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1791
            found := true.
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1792
            foundInSelection := true.
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1793
        ].
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1794
        (classes includes:nil) ifTrue:[
7985
96270f424059 changed #updateListsFor:
Claus Gittinger <cg@exept.de>
parents: 7984
diff changeset
  1795
"/ self halt:'should not happen'.
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1796
            self selectedClasses value:(classes select:[:each | each notNil]).
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1797
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1798
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1799
    "/ and in the last selection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1800
    (classes := lastSelectedClasses) size > 0 ifTrue:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1801
        (self updateClassesIn:classes) ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1802
            found := true
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1803
        ].
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1804
        (classes includes:nil) ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1805
"/ self halt:'should not happen'.
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1806
            lastSelectedClasses := (classes select:[:each | each notNil]).
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1807
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1808
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1809
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1810
    found ifFalse:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1811
        "/ could be a new class (or no-longer autolaoded one).
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1812
        listValid ifTrue:[
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1813
            self enqueueDelayedUpdateList.
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1814
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1815
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1816
    foundInSelection ifTrue:[
7984
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1817
        "/ force update of output generator
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1818
        self selectedClasses 
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1819
            removeDependent:self;
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1820
            changed;
3ec03e7d9b01 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7928
diff changeset
  1821
            addDependent:self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1822
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1823
11561
842bae6ac117 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11556
diff changeset
  1824
    "Modified: / 05-06-2012 / 23:39:25 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1825
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1826
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1827
!ClassList methodsFor:'private-presentation'!
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1828
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1829
colorForCoverageInformationOfClass:aClass
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1830
    |instrumented anyPartiallyCovered anyCalled anyNotCalled|
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1831
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1832
    instrumented := anyPartiallyCovered := anyCalled := anyNotCalled := false.
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1833
    aClass instAndClassMethodsDo:[:m |
9447
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1834
        m category = 'documentation' ifFalse:[
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1835
            m isInstrumented ifTrue:[
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1836
                instrumented := true.
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1837
                m hasBeenCalled ifFalse:[
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1838
                    anyNotCalled := true.
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1839
                ] ifTrue:[
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1840
                    anyCalled := true.
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1841
                    m haveAllBlocksBeenExecuted ifFalse:[
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1842
                        anyPartiallyCovered := true.
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1843
                        "/ no need to search further...
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1844
                        ^ UserPreferences current colorForInstrumentedPartiallyCoveredCode
9447
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1845
                    ]
3c3126346495 changed: #emphasisForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9437
diff changeset
  1846
                ].
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1847
            ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1848
        ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1849
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1850
    instrumented ifFalse:[ ^ nil].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1851
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1852
    anyCalled ifFalse:[ ^ UserPreferences current colorForInstrumentedNeverCalledCode ].
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1853
    anyNotCalled ifFalse:[ ^ UserPreferences current colorForInstrumentedFullyCoveredCode ].
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1854
    ^ UserPreferences current colorForInstrumentedPartiallyCoveredCode
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1855
9453
af1dff01c1d0 added: #colorForCoverageInformationOfClass:
Claus Gittinger <cg@exept.de>
parents: 9447
diff changeset
  1856
    "Created: / 28-04-2010 / 14:05:27 / cg"
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1857
!
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1858
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1859
iconForClass:aClass
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1860
    ^ SystemBrowser iconForClass:aClass
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1861
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1862
    "Created: / 17-08-2006 / 09:12:32 / cg"
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1863
!
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1864
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1865
indentPerPrivacyLevel
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1866
    ^ 4
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1867
!
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1868
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1869
nameListEntryFor:aClass withNameSpace:useFullName
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1870
    |sortByNameAndInheritance nm indent owner orgMode indentString javaPackage|
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1871
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1872
    aClass == (self class nameListEntryForALL) ifTrue:[ ^ aClass ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1873
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1874
    sortByNameAndInheritance := self sortByNameAndInheritance value.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1875
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1876
    sortByNameAndInheritance ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1877
        nm := (self nameListIndentStringFor: aClass withNameSpace: useFullName) , aClass nameInBrowser.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1878
    ] ifFalse:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1879
        nm := aClass nameInBrowser.
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1880
    ].
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1881
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1882
    aClass isLoaded ifFalse:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1883
        unloadedClassesColor notNil ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1884
            nm := nm colorizeAllWith:unloadedClassesColor
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1885
        ]
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1886
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1887
11864
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1888
    aClass isLoaded ifFalse:[
11881
fe2d88632160 changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11864
diff changeset
  1889
        "/ nm := nm,(' (?) ' colorizeAllWith:Color grey).
11864
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1890
    ] ifTrue:[
13095
7a28499914b1 class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12579
diff changeset
  1891
        nm := (nm , ' ').
12579
638b1166d05b class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12466
diff changeset
  1892
        aClass isAbstract ifTrue:[ nm := nm allItalic ].
11952
2f2b5c6e81f7 changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11945
diff changeset
  1893
        nm := nm,((' (%1+%2) ' bindWith:(aClass methodDictionary size) with:(aClass class methodDictionary size)) 
2f2b5c6e81f7 changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11945
diff changeset
  1894
                        colorizeAllWith:self class pseudoEntryForegroundColor).
11864
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1895
    ].
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1896
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1897
    orgMode := organizerMode value.
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1898
    orgMode == OrganizerCanvas organizerModeHierarchy ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1899
        "/ always show the full name
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1900
        ^ nm
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1901
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1902
    orgMode == OrganizerCanvas organizerModeClassHierarchy ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1903
        "/ always show the full name
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1904
        ^ nm
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1905
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1906
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1907
    aClass isJavaClass ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1908
        "/ only show the last name, unless multiple packages are shown in the list
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1909
        javaPackage := aClass package.
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1910
        (self classList value contains:[:cls | cls package ~= javaPackage]) ifTrue:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1911
            ^ nm 
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1912
        ].        
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1913
        ^ aClass lastName
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1914
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1915
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1916
    useFullName ifFalse:[
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1917
        aClass isPrivate ifFalse:[
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1918
            sortByNameAndInheritance ifTrue:[
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1919
                ^ (self nameListIndentStringFor: aClass withNameSpace: useFullName) , aClass nameWithoutNameSpacePrefix 
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1920
            ].
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1921
            ^ aClass nameWithoutNameSpacePrefix 
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1922
        ]
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1923
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1924
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1925
    "/ full name required if owner is not in the list
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1926
    owner := aClass owningClass.
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1927
    (owner isNil
11864
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1928
    or:[(self classList value includesIdentical:owner) not]) ifFalse:[
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1929
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1930
        "/ namespace
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1931
        indent := (nm count:[:char | char == $:]) // 2.
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1932
        indent > 0 ifTrue:[
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1933
            indent := indent * self indentPerPrivacyLevel.
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1934
            indentString := String new:indent withAll:Character space.
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1935
            sortByNameAndInheritance ifTrue:[
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1936
                nm := (self nameListIndentStringFor:owner withNameSpace:useFullName)
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1937
                        , indentString , '::' , aClass nameWithoutPrefix.
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1938
            ] ifFalse:[
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1939
                nm := indentString , '::' , aClass nameWithoutPrefix
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1940
            ]
614bca1b265a changed: #nameListEntryFor:withNameSpace:
Claus Gittinger <cg@exept.de>
parents: 11561
diff changeset
  1941
        ].
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1942
    ].
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1943
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1944
    ^ nm
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1945
10134
ffe89750eaf1 configurable \"Indent by inheritance\" behavior in classlist
Claus Gittinger <cg@exept.de>
parents: 9761
diff changeset
  1946
    "Modified: / 04-07-2011 / 19:00:45 / cg"
11955
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1947
!
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1948
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1949
nameListIndentStringFor:aClass withNameSpace:useFullName
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1950
    | indent indentString cls |
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1951
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1952
    indent := 0.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1953
    indentString := ''.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1954
    cls := aClass superclass.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1955
    [self classList value includesIdentical:cls] 
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1956
        whileTrue:
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1957
            [indent := indent + 1.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1958
            cls := cls superclass].
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1959
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1960
    indent == 0 ifFalse:[
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1961
        indent <= 5 ifTrue:[
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1962
            indentString := #(
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1963
                         ''
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1964
                         '  '
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1965
                         '    '
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1966
                         '      '
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1967
                         '        '
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1968
                         '          '
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1969
                       ) at:indent+1.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1970
        ] ifFalse:[
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1971
            indentString := String new:indent*2 withAll:Character space.
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1972
        ].
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1973
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1974
    ].
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1975
    ^indentString
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1976
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1977
    "Modified: / 24-02-2000 / 17:52:28 / cg"
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1978
    "Created: / 21-01-2008 / 19:02:07 / janfrog"
91a668e03acf changed: #nameListForClasses:
Claus Gittinger <cg@exept.de>
parents: 11952
diff changeset
  1979
    "Modified (format): / 04-07-2011 / 18:30:20 / cg"
9431
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1980
! !
82ed2cb0ebca coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9371
diff changeset
  1981
10421
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1982
!ClassList methodsFor:'queries'!
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1983
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1984
supportsSearch
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1985
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1986
    ^(self componentAt: #List) notNil
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1987
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1988
    "Created: / 28-07-2011 / 17:46:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1989
! !
75c4bfa6618e - CodeHighlightingService refactored to use
vrany
parents: 10367
diff changeset
  1990
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1991
!ClassList methodsFor:'setup'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1992
6749
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1993
autoSelect:aBoolean
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1994
    autoSelect ~~ aBoolean ifTrue:[
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1995
        autoSelect := aBoolean.
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1996
        classList value:nil.
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1997
    ].
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1998
!
7ba97d579490 fixes for use in MetricViewer
Claus Gittinger <cg@exept.de>
parents: 6738
diff changeset
  1999
8167
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2000
classFilterBlock:aBlock
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2001
    "use this to filter away unwanted packages"
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2002
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2003
    classFilterBlock := aBlock
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2004
!
91c622ff0f10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8166
diff changeset
  2005
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2006
postBuildWith:aBuilder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2007
    |classListView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2008
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2009
    super postBuildWith:aBuilder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2010
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2011
    classListView := aBuilder componentAt:'List'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2012
    classListView notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2013
	classListView allowDrag:true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2014
	classListView dragObjectConverter:[:obj | 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2015
					    |nm class idx|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2016
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2017
					    nm := obj theObject asString.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2018
					    idx := classNameList value indexOf:nm.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2019
					    idx == 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2020
						idx := classNameList value indexOf:nm string.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2021
					    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2022
					    class := classList value at:idx.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2023
					    DropObject newClass:class.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2024
					 ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2025
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2026
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2027
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2028
!ClassList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2029
11561
842bae6ac117 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11556
diff changeset
  2030
version
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  2031
    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.76 2013-09-05 10:46:11 vrany Exp $'
11561
842bae6ac117 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11556
diff changeset
  2032
!
842bae6ac117 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11556
diff changeset
  2033
8945
092ea9773ca2 changed: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 8752
diff changeset
  2034
version_CVS
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13442
diff changeset
  2035
    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.76 2013-09-05 10:46:11 vrany Exp $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2036
! !
12466
c14bcbda280c class: Tools::ClassList
Claus Gittinger <cg@exept.de>
parents: 12044
diff changeset
  2037