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