Tools__HierarchicalClassList.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Jan 2020 21:02:47 +0100
changeset 19422 c6ca1c3e0fd7
parent 18710 518f0f70390b
permissions -rw-r--r--
#REFACTORING by exept class: MultiViewToolApplication added: #askForFile:default:forSave:thenDo: changed: #askForFile:default:thenDo: #askForFile:thenDo: #menuSaveAllAs #menuSaveAs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18710
518f0f70390b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17286
diff changeset
     1
"{ Encoding: utf8 }"
518f0f70390b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17286
diff changeset
     2
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
 COPYRIGHT (c) 2004 by eXept Software AG
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
              All Rights Reserved
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ Package: 'stx:libtool' }"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
"{ NameSpace: Tools }"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
ClassList subclass:#HierarchicalClassList
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	instanceVariableNames:'topClassHolder'
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:'InheritedEntry'
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Interface-Browsers-New'
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!HierarchicalClassList class methodsFor:'documentation'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
copyright
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 COPYRIGHT (c) 2004 by eXept Software AG
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
              All Rights Reserved
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 This software is furnished under a license and may be used
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 hereby transferred.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
documentation
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    Like a ClassList, but shows classes hierarchical.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    If topClassHolders value is non-nil, only that classes hierarchy
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    is shown.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    embeddable application displaying the classes as listed by
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    the inputGenerator.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    Provides an outputGenerator, which enumerates the classes and
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    their protocols (method-categories) in the selected classes.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    [author:]
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	Claus Gittinger (cg@exept.de)
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!HierarchicalClassList class methodsFor:'initialization'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
initialize
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    InheritedEntry := '* inheritance *'
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    "Created: / 24.2.2000 / 20:19:19 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!HierarchicalClassList class methodsFor:'queries-plugin'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
aspectSelectors
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    ^ super aspectSelectors ,
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
    72
       #(
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
    73
          topClassHolder
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
    74
        )
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
    76
    "Modified: / 24-02-2014 / 10:38:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!HierarchicalClassList methodsFor:'accessing'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
showMethodComplexity:aValueHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "Created: / 05-11-2007 / 17:15:35 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
showMethodInheritance:aValueHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "Created: / 05-11-2007 / 17:15:23 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
showMethodTypeIcon:aValueHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "Created: / 05-11-2007 / 17:15:42 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!HierarchicalClassList methodsFor:'aspects'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
methodVisibilityHolder:aValueHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    "Created: / 05-11-2007 / 17:15:48 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
topClassHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    topClassHolder isNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
        topClassHolder := Object asValue.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
        topClassHolder addDependent:self
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    ^ topClassHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
topClassHolder:aValueHolder
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    |oldTopClass newTopClass|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    oldTopClass := topClassHolder value.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    topClassHolder notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
        topClassHolder removeDependent:self
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
    topClassHolder := aValueHolder.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    topClassHolder notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
        topClassHolder isBehavior ifTrue:[self halt:'should not happen'].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
        topClassHolder addDependent:self.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    newTopClass := topClassHolder value.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    newTopClass ~~ oldTopClass ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
        self enqueueDelayedUpdateList.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
!HierarchicalClassList methodsFor:'change & update'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
classDefinitionChanged:aClass
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    |prevTop prevSelection newSelection selectedClassesHolder|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    listValid ifFalse:[^ self].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    slaveMode value == true ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	self invalidateList.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
	^ self.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    selectedClassesHolder := self selectedClasses.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    prevSelection := selectedClassesHolder value copy.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    prevTop := self topClassHolder value.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    prevTop notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	(prevTop name = aClass name) ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	    "/ forced update
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	    topClassHolder value:aClass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
	] ifFalse:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
	    (prevTop name = aClass class name) ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
		"/ forced update
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
		topClassHolder value:aClass class.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	    ]   
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	]
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    "/ must update the list (notice, that the hierarchy might have changed..)
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    self updateList.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    selectedClassesHolder value ~= prevSelection ifTrue:[
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   164
	newSelection := prevSelection collect:[:eachOldClass | environment classNamed:(eachOldClass name)].
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
	selectedClassesHolder value:newSelection.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    ]
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    "Modified: / 26.2.2000 / 01:17:01 / cg"
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
classRemoved:aClass
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
    |prevTop newTop prevSel nPrevSelected selectedClassesHolder newSelection wasMeta|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    prevTop := self topClassHolder value.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    prevTop notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	wasMeta := prevTop isMeta.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
	newTop := prevTop theNonMetaclass.
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   179
	[newTop notNil and:[(environment at:newTop name) ~= newTop]] whileTrue:[
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
	    newTop := newTop superclass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	wasMeta ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
	    newTop := newTop theMetaclass
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
	newTop ~~ prevTop ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
	    self topClassHolder value:newTop.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
	].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    selectedClassesHolder := self selectedClasses.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "/ if there is a single selection,
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    "/ which is the old top, replace it.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    prevSel := selectedClassesHolder value.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    nPrevSelected := prevSel size.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    nPrevSelected > 0 ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
	nPrevSelected == 1 ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
	    prevSel first == aClass ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
		newTop notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
		    newSelection := Array with:newTop.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
		] ifFalse:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
		    newSelection := #().
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
		]
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
	    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
	] ifFalse:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
	    nPrevSelected ~~ 0 ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
		"/ clear the selection
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
		newSelection := #().
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
	    ]
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
	].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
	newSelection notNil ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
	    selectedClassesHolder value:newSelection
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
	].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    super classRemoved:aClass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
!HierarchicalClassList methodsFor:'private'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
addTo:aList whereSuperclassIs:aSuperclass
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    |theClasses|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    aSuperclass isNil ifTrue:[
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   225
	theClasses := environment allClasses select:[:cls | cls superclass isNil]
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    ] ifFalse:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
	theClasses := aSuperclass subclasses.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    (self hideUnloadedClasses value) ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
	theClasses := theClasses select:[:cls | cls isLoaded].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    theClasses := theClasses asOrderedCollection sort:[:a :b | (a name ? '??') < (b name ? '??')].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    theClasses do:[:aClass |
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
	aList add:aClass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
	self addTo:aList whereSuperclassIs:aClass
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    ].        
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
defaultSlaveModeValue
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    |mode|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    mode := self topApplication perform:#initialOrganizerMode ifNotUnderstood:nil.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    mode == OrganizerCanvas organizerModeClassHierarchy ifTrue:[^ false].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    mode isNil ifTrue:[^ false].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    self organizerMode value == OrganizerCanvas organizerModeCategory ifTrue:[^ true].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    ^ false
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
listOfClasses
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    |classes top|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    classes := OrderedCollection new.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    (top := self topClassHolder value) notNil ifTrue:[
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   256
        top := top theNonMetaclass.
15534
b7f97664fc12 class: Tools::HierarchicalClassList
Claus Gittinger <cg@exept.de>
parents: 14286
diff changeset
   257
        classes addAll:(top withAllSuperclasses reversed).
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   258
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   259
        "/ Must check whether environment contains the class and filter it out,
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   260
        "/ if not. Think of limited environment to Java classes which should not
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   261
        "/ show Object & JavaObject even if they are real superclasses of any Java
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   262
        "/ class.
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   263
        "/ Q: Should we rather ignore all superclasses after first class which is not
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   264
        "/ in environment?
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   265
        classes := classes select:[:class | (environment at: class name ifAbsent:[nil]) notNil ].
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
    self addTo:classes whereSuperclassIs:top.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
    ^ classes
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   270
    "Modified: / 24-02-2000 / 13:27:43 / cg"
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   271
    "Modified (format): / 27-04-2014 / 20:47:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
nameListEntryFor:aClass withNameSpace:useFullName
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    |indent superClass nm|
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    aClass == (self class nameListEntryForALL) ifTrue:[ ^ aClass ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    aClass == InheritedEntry ifTrue:[ ^ aClass ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   280
    nm := aClass nameInBrowser.
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    nm isNil ifTrue:[^ '???'].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   283
    aClass isLoaded ifFalse:[
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   284
        "/ nm := nm,(' (?) ' colorizeAllWith:Color grey).
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   285
    ] ifTrue:[
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   286
        aClass isAbstract ifTrue:[ nm := nm allItalic ].
17286
367515a3b9a4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16496
diff changeset
   287
        nm := nm,((' (%1+%2) ' bindWith:(aClass methodsCount) with:(aClass class methodsCount)) 
16496
f394a324f190 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 15534
diff changeset
   288
                                withColor:self class pseudoEntryForegroundColor).
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   289
    ].
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   290
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
    indent := 0.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    superClass := aClass superclass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
    [superClass notNil] whileTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
        indent := indent + 1.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
        superClass := superClass superclass.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    indent == 0 ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
        ^ nm
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
    indent <= 5 ifTrue:[
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
        indent := #(
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
                     ''
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
                     '    '
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
                     '        '
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
                     '            '
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
                     '                '
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
                     '                    '
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
                   ) at:indent+1.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    ] ifFalse:[
18710
518f0f70390b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17286
diff changeset
   312
        indent := String new:indent*4.
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    ].
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
    ^ indent , nm
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
18710
518f0f70390b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17286
diff changeset
   316
    "Modified: / 24-02-2000 / 20:19:47 / cg"
518f0f70390b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17286
diff changeset
   317
    "Modified: / 24-03-2019 / 09:58:54 / Claus Gittinger"
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
release
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    super release.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
    topClassHolder removeDependent:self.
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
!HierarchicalClassList class methodsFor:'documentation'!
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   328
version
16496
f394a324f190 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 15534
diff changeset
   329
    ^ '$Header$'
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
! !
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
14286
badb3e840d06 Fix in #listOfClasses - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10005
diff changeset
   332
10005
1be8eed80ba5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
HierarchicalClassList initialize!