Tools__VariableList.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 18226 346376844040
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2000 by eXept Software AG
18226
346376844040 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16773
diff changeset
     3
 COPYRIGHT (c) 2016 Jan Vrany
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	      All Rights Reserved
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    13
"{ Package: 'stx:libtool' }"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"{ NameSpace: Tools }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
BrowserList subclass:#VariableList
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
    18
	instanceVariableNames:'classHolder groupVariablesByInheritance selectedVariableEntries
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
    19
		showClassVars showWarningAboutMissingEntryInXmlSpec
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
    20
		sortVariablesByName variableList'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	classVariableNames:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	poolDictionaries:''
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	category:'Interface-Browsers-New'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    26
Object subclass:#VariableEntry
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
    27
	instanceVariableNames:'label application class name type icon sortingByNameHolder
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
    28
		classShown groupByInheritanceHolder'
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    29
	classVariableNames:''
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    30
	poolDictionaries:''
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    31
	privateIn:VariableList
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    32
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
    33
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!VariableList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
copyright
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 COPYRIGHT (c) 2000 by eXept Software AG
18226
346376844040 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16773
diff changeset
    39
 COPYRIGHT (c) 2016 Jan Vrany
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	      All Rights Reserved
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
"
11878
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    49
!
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    50
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    51
documentation
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    52
"
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    53
    I implement the variable list (below class list) in the new system browser
8ed6599e1202 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11586
diff changeset
    54
"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!VariableList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "
10287
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    67
     UIPainter new openOnClass:Tools::VariableList andSelector:#windowSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    68
     Tools::VariableList new openInterface:#windowSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    69
     Tools::VariableList open
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    ^ 
10287
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    75
     #(FullSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    76
        name: windowSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    77
        window: 
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    78
       (WindowSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    79
          label: 'VariableList'
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    80
          name: 'VariableList'
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    81
          min: (Point 0 0)
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    82
          bounds: (Rectangle 0 0 300 300)
9461
bc5bcb61a654 no max window size !
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
    83
        )
10287
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    84
        component: 
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    85
       (SpecCollection
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    86
          collection: (
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    87
           (SequenceViewSpec
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    88
              name: 'List'
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    89
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    90
              tabable: true
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    91
              model: selectedVariableEntries
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    92
              menu: menuHolder
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    93
              hasHorizontalScrollBar: true
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    94
              hasVerticalScrollBar: true
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    95
              miniScrollerHorizontal: true
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    96
              isMultiSelect: true
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    97
              valueChangeSelector: selectionChangedByClick
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    98
              useIndex: false
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
    99
              sequenceList: variableList
ecb21c20ff9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10255
diff changeset
   100
              doubleClickChannel: doubleClickChannel
9461
bc5bcb61a654 no max window size !
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
   101
            )
bc5bcb61a654 no max window size !
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
   102
           )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
         
9461
bc5bcb61a654 no max window size !
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
   104
        )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!VariableList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    ^ #(
14021
ff0b42e2c251 Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13827
diff changeset
   122
        environmentHolder
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   123
        #(#doubleClickChannel #action )
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   124
        #classHolder
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   125
        #forceGeneratorTrigger
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   126
        #immediateUpdate
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   127
        #inGeneratorHolder
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   128
        #menuHolder
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   129
        #outGeneratorHolder
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   130
        #packageFilter
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   131
        #selectedVariables
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   132
        #selectionChangeCondition
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   133
        #updateTrigger
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   134
        #showClassVarsInVariableList
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   135
        #slaveMode
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   136
        #sortVariablesByName
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   137
        #groupVariablesByInheritance
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
      ).
14021
ff0b42e2c251 Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13827
diff changeset
   139
ff0b42e2c251 Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13827
diff changeset
   140
    "Modified: / 24-02-2014 / 10:37:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
!VariableList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
classHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    classHolder isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
	classHolder := #() asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	classHolder addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    ^ classHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
classHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    classHolder notNil ifTrue:[
10308
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   155
        classHolder removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    classHolder := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    classHolder notNil ifTrue:[
10308
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   159
        classHolder isBehavior ifTrue:[self error:'should not happen'].
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   160
        classHolder addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    ].
10308
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   162
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   163
    "Modified: / 11-07-2011 / 17:04:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
defaultSlaveModeValue
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    ^ false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   170
groupVariablesByInheritance
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   171
    "/ groupVariablesByInheritance and sortVariablesByName form a 3-state value
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   172
    "/      groupVariablesByInheritance sortVariablesByName
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   173
    "/                  T                   T                   - sort within each defining class
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   174
    "/                  T                   F                   - by inst-order grouped by defining class
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   175
    "/                  F                   T                   - show all of them in one big sorted list
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   176
    "/                  F                   F                   - useless - show all of them by inst-order
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   177
    groupVariablesByInheritance isNil ifTrue:[
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   178
        groupVariablesByInheritance := true asValue.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   179
        groupVariablesByInheritance addDependent:self
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   180
    ].
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   181
    ^ groupVariablesByInheritance
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   182
!
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   183
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   184
groupVariablesByInheritance:aValueHolder
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   185
    "/ self assert:(aValueHolder value isBoolean).
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   186
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   187
    groupVariablesByInheritance notNil ifTrue:[
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   188
        groupVariablesByInheritance removeDependent:self
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   189
    ].
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   190
    groupVariablesByInheritance := aValueHolder.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   191
    groupVariablesByInheritance notNil ifTrue:[
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   192
        groupVariablesByInheritance addDependent:self
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   193
    ].
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   194
!
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   195
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   196
selectedVariableEntries
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   197
    <resource: #uiAspect>
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   198
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   199
    "automatically generated by UIPainter ..."
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   200
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   201
    selectedVariableEntries isNil ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   202
        selectedVariableEntries := #() asValue.
16192
107ef924f078 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 15537
diff changeset
   203
        selectedVariableEntries addDependent:self.
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   204
    ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   205
    ^ selectedVariableEntries.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   206
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   207
    "Modified: / 12-04-2011 / 15:49:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   208
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   209
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
selectedVariables
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    ^ self selectionHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
selectedVariables:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    ^ self selectionHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
showClassVarsInVariableList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    showClassVars isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
	showClassVars := false asValue.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
	showClassVars addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    ^ showClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
showClassVarsInVariableList:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    showClassVars notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
	showClassVars removeDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    showClassVars := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    showClassVars notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
	showClassVars addDependent:self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
showingInheritedClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    ^ false
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    "/ ^ true
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
sortVariablesByName
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   244
    "/ groupVariablesByInheritance and sortVariablesByName form a 3-state value
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   245
    "/      groupVariablesByInheritance sortVariablesByName
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   246
    "/                  T                   T                   - sort within each defining class
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   247
    "/                  T                   F                   - by inst-order grouped by defining class
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   248
    "/                  F                   T                   - show all of them in one big sorted list
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   249
    "/                  F                   F                   - useless - show all of them by inst-order
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
    sortVariablesByName isNil ifTrue:[
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   251
        sortVariablesByName := false asValue.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   252
        sortVariablesByName addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    ^ sortVariablesByName
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
sortVariablesByName:aValueHolder
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   258
    "/ self assert:(aValueHolder value isBoolean).
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   259
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    sortVariablesByName notNil ifTrue:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   261
        sortVariablesByName removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
    sortVariablesByName := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    sortVariablesByName notNil ifTrue:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   265
        sortVariablesByName addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
variableList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    variableList isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
	variableList := ValueHolder new
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    ^ variableList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
!VariableList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    |selectedClasses changedClass anyChange|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
    self inSlaveModeOrInvisible ifTrue:[self invalidateList. ^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    changedObject == slaveMode ifTrue:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   286
        listValid ~~ true ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   287
            self enqueueDelayedUpdateList
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   288
        ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   289
        "/ self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   290
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
    changedObject == classHolder ifTrue:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   294
        self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   295
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
    changedObject == showClassVars ifTrue:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   298
        self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   299
        ^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
    changedObject == sortVariablesByName ifTrue:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   302
        self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   303
        ^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    ].
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   305
    changedObject == groupVariablesByInheritance ifTrue:[
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   306
        self invalidateList.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   307
        ^ self.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   308
    ].
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   309
    changedObject == environment ifTrue:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   310
        (something == #projectOrganization) ifTrue:[^ self].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   311
        (something == #currentChangeSet) ifTrue:[^ self].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   312
        (something == #aboutToAutoloadClass) ifTrue:[^ self].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   313
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   314
        (something == #classDefinition
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   315
        or:[ (something == #newClass)
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   316
        or:[ something == #classVariables and:[showClassVars value == true]]])
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   317
        ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   318
            changedClass := aParameter.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   319
            selectedClasses := classHolder value.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   320
            selectedClasses notNil ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   321
                selectedClasses isSequenceable ifFalse:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   322
                    selectedClasses := selectedClasses asOrderedCollection
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   323
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   324
                selectedClasses keysAndValuesDo:[:idx :cls | |nm|
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   325
                    cls notNil ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   326
                        cls isObsolete ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   327
                            cls isMeta ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   328
                                nm := cls theNonMetaclass name.
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   329
                                selectedClasses at:idx put:(environment at:nm) class.
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   330
                            ] ifFalse:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   331
                                nm := cls name.
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   332
                                selectedClasses at:idx put:(environment at:nm).
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   333
                            ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   334
                            anyChange := true.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   335
                        ] ifFalse:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   336
                            (cls == aParameter 
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   337
                            or:[something == #classVariables 
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   338
                                and:[showClassVars value == true
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   339
                                and:[cls theNonMetaclass == aParameter theNonMetaclass]]]) ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   340
                                anyChange := true.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   341
                            ]
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   342
                        ]
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   343
                    ]
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   344
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   345
                (selectedClasses includes:nil) ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   346
                    "/ can happen, if a selected class is removed...
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   347
                    "/ self halt:'should this happen ?'.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   348
                    "/ fix it ...
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   349
                    selectedClasses := selectedClasses select:[:each | each notNil].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   350
                    classHolder value:selectedClasses.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   351
                    anyChange := true.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   352
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   353
                anyChange == true ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   354
                    self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   355
                    ^  self
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   356
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   357
            ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   358
            ^  self
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   359
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    ] ifFalse:[
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   361
        changedObject isBehavior ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   362
            anyChange := false.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   363
            selectedClasses := classHolder value.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   364
            selectedClasses notNil ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   365
                selectedClasses keysAndValuesDo:[:idx :cls | |nm|
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   366
                    cls isObsolete ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   367
                        nm := cls name.
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   368
                        selectedClasses at:idx put:(environment at:nm).
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   369
                        anyChange := true.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   370
                    ]
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   371
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   372
                anyChange == true ifTrue:[
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   373
                    self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   374
                    ^  self
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   375
                ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   377
                (selectedClasses includesIdentical:something) ifTrue:[    
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   378
                    self invalidateList.
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   379
                    ^  self
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   380
                ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   381
            ].
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   382
            ^  self
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   383
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
    super delayedUpdate:something with:aParameter from:changedObject
11296
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   386
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   387
    "Modified: / 01-03-2012 / 09:18:11 / cg"
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   388
!
2fec94a88af2 added: #enqueueDelayedUpdateList
Claus Gittinger <cg@exept.de>
parents: 10974
diff changeset
   389
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
makeDependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   391
    environment addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
makeIndependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   396
    environment removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
selectionChangedByClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
    "we are not interested in that - get another notification
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
     via the changed valueHolder"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
update:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
    "/ ^ self delayedUpdate:something with:aParameter from:changedObject.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13458
diff changeset
   410
    changedObject == environment ifTrue:[
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   411
        something == #methodDictionary ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   412
            ^ self 
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   413
        ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   414
        something == #methodTrap ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   415
            ^ self
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   416
        ].
10366
381d075b9370 changed:
Claus Gittinger <cg@exept.de>
parents: 10324
diff changeset
   417
        something == #methodCoverageInfo ifTrue:[
381d075b9370 changed:
Claus Gittinger <cg@exept.de>
parents: 10324
diff changeset
   418
            ^ self
381d075b9370 changed:
Claus Gittinger <cg@exept.de>
parents: 10324
diff changeset
   419
        ].
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   420
        something == #methodInClass ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   421
            ^ self
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   422
        ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   423
        something == #methodInClassRemoved ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   424
            ^ self
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   425
        ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   426
        something == #classComment ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   427
            ^ self.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   428
        ].
14293
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   429
        something == #lastTestRunResult ifTrue:[
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   430
            ^ self
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   431
        ].
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   432
        something isNil ifTrue:[
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   433
            ^ self
148663f7e59d class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14288
diff changeset
   434
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
"/    self window sensor isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
"/        "/ I am not visible ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
"/        self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
"/        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
"/    ].
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   441
    changedObject == selectedVariableEntries ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   442
        self selectedVariables value:
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   443
            ((selectedVariableEntries value ? #())
14144
9bcb9fef21b6 Access graphicsDevice via method send instead of instVar access
Stefan Vogel <sv@exept.de>
parents: 14114
diff changeset
   444
                select:[:e| e isString not]         "filter out class name header strings"
9bcb9fef21b6 Access graphicsDevice via method send instead of instVar access
Stefan Vogel <sv@exept.de>
parents: 14114
diff changeset
   445
                thenCollect:[:e|e name]).
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   446
        ^self.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   447
    ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   448
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   449
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
    super update:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   452
    "Modified: / 12-04-2011 / 15:54:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10366
381d075b9370 changed:
Claus Gittinger <cg@exept.de>
parents: 10324
diff changeset
   453
    "Modified: / 20-07-2011 / 18:52:44 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
!VariableList methodsFor:'generators'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
makeGenerator
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
!VariableList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   466
commonPostBuild
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
    |list|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   469
    super commonPostBuild.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   471
    list := builder componentAt:#List.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
    list notNil ifTrue:[
5909
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   473
        list selectConditionBlock:[:item | self selectionChangeAllowed:item].
95cd2d9822b3 commonPostBuild
Claus Gittinger <cg@exept.de>
parents: 5592
diff changeset
   474
        list ignoreReselect:false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
commonSubClassIn:classes
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
    "return true if there is a common subclass"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
    |theCommonSubClass "classesByInheritance"|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
    theCommonSubClass := nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
    classes do:[:eachClass |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
	theCommonSubClass isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
	    theCommonSubClass := eachClass
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
	] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
	    (eachClass isSubclassOf:theCommonSubClass) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
		theCommonSubClass := eachClass    
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
	    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
		(theCommonSubClass isSubclassOf:eachClass) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
		    ^ nil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
		]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
	    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
	]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
    ^ theCommonSubClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
"/    classesByInheritance := classes topologicalSort:[:a :b | a isSubclassOf:b].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
"/    classesByInheritance keysAndValuesDo:[:index :eachClass |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
"/        "/ all classes after that one must be superclasses ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
"/        classesByInheritance from:index+1 to:classesByInheritance size do:[:otherClass |
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
"/            (eachClass isSubclassOf:otherClass) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
"/                ^ nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
"/            ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
"/    ^ classesByInheritance first
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
10324
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   511
iconInBrowserForVariable:varName in:aClass
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   512
    "variables for which an entry is found in the xml-spec (if any) are marked
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   513
     with an <xml>-icon."
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   514
10324
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   515
    (Expecco::ExpeccoXMLDecoder notNil 
11586
3a33f4f9c9b6 changed: #iconInBrowserForVariable:in:
sr
parents: 11461
diff changeset
   516
    and:[aClass canUnderstand: #xmlSpecForObject:]) ifTrue:[
10324
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   517
        Error handle:[:ex |
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   518
        ] do:[
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   519
            (Expecco::ExpeccoXMLDecoder xmlSpecForObject:aClass basicNew)
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   520
                do:[:spec | spec getter = varName ifTrue:[
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   521
                                ^ SystemBrowser instVarOverlayXmlSpec
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   522
                            ]
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   523
                ].
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   524
        ].
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   525
    ].
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   526
    ^ nil
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   527
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   528
    "Created: / 12-04-2011 / 19:58:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10324
d68f7aa2e449 I dont like extensions too much.
Claus Gittinger <cg@exept.de>
parents: 10308
diff changeset
   529
    "Modified: / 15-07-2011 / 18:32:47 / cg"
11586
3a33f4f9c9b6 changed: #iconInBrowserForVariable:in:
sr
parents: 11461
diff changeset
   530
    "Modified: / 22-06-2012 / 13:17:28 / sr"
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   531
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   532
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   533
listEntryForClass: cls name:name
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   534
    ^ self listEntryForClass: cls name:name info:nil
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   535
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   536
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   537
listEntryForClass: cls name:name info: classInfoOrNil
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   538
    | entry |
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   539
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   540
    entry := Tools::VariableList::VariableEntry application: self class: cls name: name.
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   541
    entry sortingByNameHolder:sortVariablesByName.
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   542
    entry groupByInheritanceHolder:groupVariablesByInheritance.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   543
    classInfoOrNil notNil ifTrue:[
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   544
        entry type: (classInfoOrNil infoForInstvarOrNil: name).
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   545
    ].
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   546
    ^entry
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   547
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   548
    "Created: / 27-11-2011 / 17:17:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13827
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   549
    "Modified: / 07-10-2013 / 08:28:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   550
!
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   551
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
listOfVariables
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   553
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   554
    |nameList numClasses classes class commonSubclass showingClassVars
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   555
     sortByName groupByInheritance classesAlreadyProcessed hasSmallSense smallSenseManager info |
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
    classHolder isNil ifTrue:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   558
        "/ testing
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   559
        ^ #()
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
13458
842c7f563bd5 class: Tools::VariableList
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13457
diff changeset
   562
    hasSmallSense := (ConfigurableFeatures includesFeature:'SmallSenseEnabled')
842c7f563bd5 class: Tools::VariableList
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13457
diff changeset
   563
                        and:[(Smalltalk at: #'SmallSense::Manager') notNil].
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   564
    hasSmallSense ifTrue:[
13457
630e14513fec Fix for recent SmallSense (moved to its own namespace)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13382
diff changeset
   565
        smallSenseManager := (Smalltalk at: #'SmallSense::Manager') instance.
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   566
    ].
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   567
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   568
    showingClassVars := self showClassVarsInVariableList value == true.
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   569
    sortByName := self sortVariablesByName value.
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   570
    groupByInheritance := self groupVariablesByInheritance value.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   571
    self assert:(sortByName isBoolean).
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   572
    self assert:(groupByInheritance isBoolean).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
    classes := classHolder value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
    (numClasses := classes size) == 0 ifTrue:[^ #() ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
    numClasses > 1 ifTrue:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   577
        "/ multiple classes - see if there is a common subclass ...
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   578
        commonSubclass := self commonSubClassIn:classes.
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   579
        commonSubclass notNil ifTrue:[
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   580
            "/ yes - treat like a single class
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   581
            classes := Array with:(commonSubclass).
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   582
            numClasses := 1.
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   583
        ].
13155
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   584
"/        commonSuperclass := Behavior commonSuperclassOf:classes.
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   585
"/        commonSuperclass notNil ifTrue:[
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   586
"/            "/ yes - treat like a single class
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   587
"/            classes := Array with:(commonSuperclass).
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   588
"/            numClasses := 1.
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   589
"/        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   592
    numClasses > 1 ifTrue:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   593
        "/ multiple classes - sort alphabetically ...
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   594
        "/ unless there is a common subclass ...
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   595
        nameList := Set new.
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   596
        classesAlreadyProcessed := IdentitySet new.
13155
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   597
        classes do:[:eachClass |
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   598
            |class|
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   599
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   600
           class := eachClass.
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   601
"/            showingClassVars ifTrue:[
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   602
"/                class := class theNonMetaclass 
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   603
"/            ].
0230b8afb999 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 12450
diff changeset
   604
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   605
            hasSmallSense ifTrue:[
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   606
                info := smallSenseManager infoForClassOrNil: class.
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   607
            ].                            
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   608
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   609
            (classesAlreadyProcessed includes:class) ifFalse:[
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   610
                showingClassVars ifTrue:[
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   611
                    self showingInheritedClassVars ifTrue:[
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   612
                        class theNonMetaclass withAllSuperclassesDo:[:cls|
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   613
                            hasSmallSense ifTrue:[
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   614
                                info := smallSenseManager infoForClassOrNil: cls.
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   615
                            ].                            
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   616
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   617
                            (classesAlreadyProcessed includes:cls) ifFalse:[
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   618
                                "/ Must check whether environment contains the class and filter it out,
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   619
                                "/ if not. Think of limited environment to Java classes which should not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   620
                                "/ show Object & JavaObject even if they are real superclasses of any Java
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   621
                                "/ class.
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   622
                                "/ Q: Should we rather ignore all superclasses after first class which is not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   623
                                "/ in environment?                       
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   624
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   625
                                (environment at: cls name ifAbsent:[nil]) notNil ifTrue:[
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   626
                                    nameList addAll:
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   627
                                       (cls classVarNames collect:[:nm|self listEntryForClass: cls name: nm info: info]).
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   628
                                ].
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   629
                                classesAlreadyProcessed add:cls.
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   630
                            ]
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   631
                        ]
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   632
                    ] ifFalse:[
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   633
                        nameList addAll:
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   634
                            (class classVarNames collect:[:nm|self listEntryForClass: class name: nm info: info ])                            
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   635
                    ]
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   636
                ] ifFalse:[
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   637
                    class withAllSuperclassesDo:[:cls|
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   638
                        (classesAlreadyProcessed includes:cls) ifFalse:[
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   639
                            "/ Must check whether environment contains the class and filter it out,
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   640
                            "/ if not. Think of limited environment to Java classes which should not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   641
                            "/ show Object & JavaObject even if they are real superclasses of any Java
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   642
                            "/ class.
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   643
                            "/ Q: Should we rather ignore all superclasses after first class which is not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   644
                            "/ in environment?                       
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   645
14806
56a544a200ce Fix Tools::VariableList>>listOfVariables - pass non-metaclass name when checking
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14612
diff changeset
   646
                            (environment at: cls theNonMetaclass name ifAbsent:[nil]) notNil ifTrue:[    
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   647
                                nameList addAll:
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   648
                                        (cls instVarNames collect:[:nm|self listEntryForClass: cls name: nm info: info ]).                            
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   649
                            ].
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   650
                            classesAlreadyProcessed add:cls.
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   651
                        ]
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   652
                    ]
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   653
                ]
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   654
            ]
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   655
        ].
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   656
        nameList := nameList asOrderedCollection.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
    ] ifFalse:[
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   658
        "/ only a single class - sort by inheritance
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   659
        class := classes first.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   661
        nameList := OrderedCollection new.
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   662
        class notNil ifTrue:[
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   663
            showingClassVars ifTrue:[
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   664
                class := class theNonMetaclass 
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   665
            ].
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   666
            class withAllSuperclassesDo:[:cls|
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   667
                "/ Must check whether environment contains the class and filter it out,
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   668
                "/ if not. Think of limited environment to Java classes which should not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   669
                "/ show Object & JavaObject even if they are real superclasses of any Java
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   670
                "/ class.
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   671
                "/ Q: Should we rather ignore all superclasses after first class which is not
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   672
                "/ in environment?                       
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   673
14335
6ad2d132a5af class: Tools::VariableList
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14293
diff changeset
   674
                (environment at: cls theNonMetaclass name ifAbsent:[nil]) notNil ifTrue:[
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   675
                    |varNames classShown|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   677
                    (hasSmallSense and:[showingClassVars not]) ifTrue:[
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   678
                        info := smallSenseManager infoForClassOrNil: cls.
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   679
                    ].                            
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   680
                    varNames := showingClassVars ifTrue:[ cls classVarNames ] ifFalse:[ cls instVarNames ].
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   681
                    classShown := (cls ~~ class). "/ only append the class in the shown name, if the var is inherited
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   682
                    sortByName ifTrue:[
16707
88a409fbc3b0 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16537
diff changeset
   683
                        varNames := varNames copy sort.
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   684
                    ].    
15537
fe8c0c4744de class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 15455
diff changeset
   685
                    varNames reversed do:[:varName|
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   686
                        |entry|
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   687
                        nameList addFirst: (entry := self listEntryForClass: cls name: varName info: info).
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   688
                        classShown ifFalse:[ entry classShown:classShown ].
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   689
                    ].
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   690
                    groupByInheritance ifTrue:[
16500
34f9ad93c51c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16192
diff changeset
   691
                        nameList addFirst:(("'----- ' , "cls nameInBrowser" , ' -----'") withColor: Color gray).
14288
01c8bbd5b6dd Fix in #listOfVariables - must check whether all superclasses are actually in environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14144
diff changeset
   692
                    ]
6721
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   693
                ].
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   694
            ].
c49f5a3cbca2 variableList (sort) fixed in hierarchy views
Claus Gittinger <cg@exept.de>
parents: 5909
diff changeset
   695
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   698
    (numClasses > 1 or:[sortByName and:[groupByInheritance not]]) ifTrue:[
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   699
        nameList := nameList asSortedCollection:[:a :b|a name < b name].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
    ^ nameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   703
    "Created: / 05-02-2000 / 13:42:11 / cg"
10550
a57b8a71a061 changed: #listOfVariables
Claus Gittinger <cg@exept.de>
parents: 10495
diff changeset
   704
    "Modified: / 08-08-2011 / 16:20:58 / cg"
14806
56a544a200ce Fix Tools::VariableList>>listOfVariables - pass non-metaclass name when checking
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14612
diff changeset
   705
    "Modified: / 28-10-2014 / 11:42:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
postBuildWith:aBuilder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
    |listView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
    (listView := aBuilder componentAt:#List) notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
	listView scrollWhenUpdating:#end
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   713
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
    super postBuildWith:aBuilder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
release
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
    super release.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
    classHolder removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
    showClassVars removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   723
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
selectionChangeAllowed:index
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   726
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   727
    | entry |
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   728
    ^((entry := variableList value at:index) isString" and:[entry startsWith:'---']") not.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   729
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   730
    "Modified: / 28-04-2011 / 13:18:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
updateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
    | prevSelection newSelection newList oldList selectedVariablesHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
    oldList := self variableList value copy.
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   737
    showWarningAboutMissingEntryInXmlSpec := false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
    newList := self listOfVariables.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
    newList ~= variableList value ifTrue:[
10495
756e95b937cb bug fix in: #updateList
vrany
parents: 10366
diff changeset
   741
        selectedVariablesHolder := self selectedVariableEntries.
11360
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   742
        prevSelection := (self selectedVariables value "selectedVariablesHolder value" copy) ? #().
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   743
        variableList value:newList.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   744
11360
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   745
        newSelection := newList select:[:item | prevSelection includes:item string].
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   746
"/         newSelection := prevSelection select:[:item | newList includes:item].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   748
        newSelection size > 0 ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   749
            "/ force change (for dependents)
11360
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   750
            "/ selectedVariablesHolder value:nil.
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   751
            selectedVariablesHolder 
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   752
                setValue:newSelection;
11461
ec732c9b79f6 changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11360
diff changeset
   753
                removeDependent:self;
ec732c9b79f6 changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11360
diff changeset
   754
                changed;
ec732c9b79f6 changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11360
diff changeset
   755
                addDependent:self.
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   756
        ] ifFalse:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   757
            prevSelection := selectedVariablesHolder value.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   758
            selectedVariablesHolder value:nil.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   759
        ].
11360
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   760
        (prevSelection size > 0 or:[newSelection size > 0
491ac5f4cbca changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11296
diff changeset
   761
        "and:[ prevSelection ~= newSelection]"]) ifTrue:[
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   762
            self updateOutputGenerator.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   763
        ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   764
    ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   765
    (showWarningAboutMissingEntryInXmlSpec and:[self topApplication respondsTo: #showMessage:]) 
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   766
        ifTrue:
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   767
            [
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   768
            self topApplication showMessage: 
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   769
                'One or more instance variables are not listed in #xmlSpecFor:'.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   770
            ].
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   771
    showWarningAboutMissingEntryInXmlSpec := false.
14861
87aa6288286b access listValid only via setter (for easier trapping)
Claus Gittinger <cg@exept.de>
parents: 14806
diff changeset
   772
    self setListValid:true.
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   773
10495
756e95b937cb bug fix in: #updateList
vrany
parents: 10366
diff changeset
   774
    "Modified: / 05-08-2011 / 12:34:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11461
ec732c9b79f6 changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 11360
diff changeset
   775
    "Modified: / 23-03-2012 / 15:55:47 / cg"
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   776
! !
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   777
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   778
!VariableList::VariableEntry class methodsFor:'instance creation'!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   779
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   780
application: app class: aClass name: aString
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   781
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   782
    ^self new application: app; class: aClass; name: aString
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   783
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   784
    "Created: / 12-04-2011 / 19:53:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   785
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   786
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   787
class: aClass name: aString
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   788
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   789
    ^self new class: aClass; name: aString
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   790
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   791
    "Created: / 12-04-2011 / 15:39:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   792
! !
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   793
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   794
!VariableList::VariableEntry methodsFor:'accessing'!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   795
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   796
application: anObject
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   798
    application := anObject
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   799
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   800
    "Created: / 12-04-2011 / 19:55:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   801
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   802
10308
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   803
asString
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   804
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   805
    ^self name
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   806
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   807
    "Created: / 11-07-2011 / 17:03:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   808
!
c4012347958b Fix for searching the list using keyboard
vrany
parents: 10287
diff changeset
   809
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   810
class:aClass
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   811
    class := aClass.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   812
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   813
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   814
classShown:aBoolean
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   815
    classShown := aBoolean.
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   816
!
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   817
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   818
groupByInheritanceHolder:aValueHolder
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   819
    "/ is there a need for a valueHolder?
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   820
    groupByInheritanceHolder := aValueHolder.
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   821
!
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   822
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   823
icon
10871
f3a06b214071 cleanup
Claus Gittinger <cg@exept.de>
parents: 10550
diff changeset
   824
    icon isNil ifTrue:[
f3a06b214071 cleanup
Claus Gittinger <cg@exept.de>
parents: 10550
diff changeset
   825
        icon := application iconInBrowserForVariable: name in: class.
f3a06b214071 cleanup
Claus Gittinger <cg@exept.de>
parents: 10550
diff changeset
   826
        icon isNil ifTrue:[icon := #NOICON].        
f3a06b214071 cleanup
Claus Gittinger <cg@exept.de>
parents: 10550
diff changeset
   827
    ].
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   828
    ^icon
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   829
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   830
    "Created: / 12-04-2011 / 15:54:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   831
    "Modified: / 12-04-2011 / 19:58:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10871
f3a06b214071 cleanup
Claus Gittinger <cg@exept.de>
parents: 10550
diff changeset
   832
    "Modified: / 18-11-2011 / 15:05:18 / cg"
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   833
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   834
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   835
klass
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   836
    ^ class
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   837
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   838
    "Created: / 12-04-2011 / 19:54:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   839
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   840
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   841
label
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   842
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   843
    label isNil ifTrue:[
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   844
        label := name.
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   845
        type notNil ifTrue:[
16500
34f9ad93c51c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16192
diff changeset
   846
            label := (label , ' ' ,  (type displayString withColor: Color brown))
13827
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   847
        ] ifFalse:[
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   848
            "/ Hack for Java classes to display field type
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   849
            class theNonMetaclass isJavaClass ifTrue:[
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   850
                | field |
16773
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   851
                field := class theNonMetaclass lookupFieldFor:name static: (class isMetaclass).
13827
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   852
                field notNil ifTrue:[
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   853
                    label := label asText , 
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   854
                            ' ' , 
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   855
                                (('< ' , (JavaMethod fieldTypeFromStream: (field descriptor readStream) in: class theNonMetaclass javaPackage) , ' >')
16500
34f9ad93c51c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16192
diff changeset
   856
                                        withColor: Color brown).
13827
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   857
                ].
864b314a5a2b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13498
diff changeset
   858
            ].    
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   859
        ].
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   860
    ].
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   861
    ^label
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   862
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   863
    "Created: / 16-12-2011 / 00:54:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
16773
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   864
    "Modified: / 29-07-2016 / 21:29:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   865
!
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   866
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   867
labelWithClass
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   868
    |l|
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   869
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   870
    l := self label.
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   871
    class notNil ifTrue:[
16500
34f9ad93c51c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16192
diff changeset
   872
        ^ label,' (' ,(class nameWithoutPrefix withColor: Color gray),')' 
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   873
    ].
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   874
    ^label
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   875
!
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   876
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   877
name
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   878
    ^ name
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   879
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   880
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   881
name:aString
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   882
    name := aString.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   883
!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   884
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   885
sortingByNameHolder:aValueHolder
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   886
    "/ is there a need for a valueHolder?
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   887
    sortingByNameHolder := aValueHolder.
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   888
!
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   889
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   890
string
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   891
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   892
    ^name
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   893
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   894
    "Created: / 12-04-2011 / 15:45:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   895
!
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   896
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   897
type
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   898
    "Return a SmallSense inferred type"
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   899
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   900
    ^ type
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   901
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   902
    "Modified (format): / 16-12-2011 / 00:41:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   903
!
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   904
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   905
type:aSmallSenseType
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   906
    "Sets a SmallSense inferred type"
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   907
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   908
    type := aSmallSenseType.
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   909
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   910
    "Modified (format): / 16-12-2011 / 00:41:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   911
! !
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   912
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   913
!VariableList::VariableEntry methodsFor:'displaying'!
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   914
15455
9091f8069ac3 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 14910
diff changeset
   915
displayOn:aGC x:x y:y opaque:opaque
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   916
    | icn shownLabel |
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   917
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   918
    icn := self icon.
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   919
    icn ~~ #NOICON ifTrue:[
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   920
        icn displayOn:aGC x:x + 1 y:y - icn height.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   921
    ].
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   922
16537
bfe8be86fde5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16500
diff changeset
   923
    shownLabel := ((classShown ? true) and:[sortingByNameHolder value and:[groupByInheritanceHolder value not]]) 
13382
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   924
                    ifTrue:[ self labelWithClass ]
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   925
                    ifFalse: [ self label ].
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   926
0ade5325ad8c class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 13155
diff changeset
   927
    shownLabel displayOn:aGC x:x + 20 y:y opaque: opaque
10255
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   928
3dce3562365a Merged with JV's branch
vrany
parents: 9461
diff changeset
   929
    "Created: / 12-04-2011 / 15:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   931
10974
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   932
!VariableList::VariableEntry methodsFor:'queries'!
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   933
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   934
widthOn:aGC
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   935
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   936
    ^20"space for icon, see displayOn:..."
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   937
        + (self label widthOn:aGC)
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   938
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   939
    "Created: / 16-12-2011 / 01:04:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   940
! !
575317178314 SmallSense support
vrany
parents: 10871
diff changeset
   941
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   942
!VariableList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   943
9461
bc5bcb61a654 no max window size !
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
   944
version_CVS
16192
107ef924f078 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 15537
diff changeset
   945
    ^ '$Header$'
16773
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   946
!
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   947
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   948
version_HG
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   949
a524b01249c1 Catch up with stx:libjava commit e35b48285df7
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16709
diff changeset
   950
    ^ '$Changeset: <not expanded> $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   951
! !
12450
11538d987c58 class: Tools::VariableList
Claus Gittinger <cg@exept.de>
parents: 11878
diff changeset
   952