Tools_MethodList.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Feb 2015 14:17:11 +0100
changeset 15150 940d37c7d3ac
parent 14024 877fd52ae84b
permissions -rw-r--r--
class: Tools::ChangeList fixed the following redraw bug in ModelListView (which is already fixed in SelectionInListView): if a colored item is shown with selection, the color attribute should be removed (or relaxed), to avoid drawing the label invisible. I.e. if the text color is blue or grey, and the selection bg is blue. we should draw white-on-blue, instead of blue/grey on blue. For this to work, the info whether drawing a selection must be passed down through the renderer to the item's draw routine.
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
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
     3
              All Rights Reserved
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
BrowserList subclass:#MethodList
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    17
	instanceVariableNames:'classes selectedMethodNameIndices methodList lastSelectedMethods
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    18
		browserNameList variableFilter filterClassVars updateProcess
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    19
		lastShowClass lastShowCategory lastShowClassFirst
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    20
		showMethodInheritance lastMethodClass lastMethodClassesSubclasses
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    21
		classAndSelectorsRedefinedBySubclassesOfClass showClass
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    22
		showMethodComplexity showMethodTypeIcon
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
    23
		showImageResourceMethodsImages showSyntheticMethods'
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    24
	classVariableNames:'ShowComplexityValue'
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    25
	poolDictionaries:''
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
    26
	category:'Interface-Browsers-New'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!MethodList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
copyright
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 COPYRIGHT (c) 2000 by eXept Software AG
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
    34
              All Rights Reserved
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
11876
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    43
!
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    44
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    45
documentation
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    46
"
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    47
    I implement the method list in the new system browser
aa117e8388d1 added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11863
diff changeset
    48
"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!MethodList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
singleMethodWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
     UIPainter new openOnClass:MethodList andSelector:#singleMethodWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
     MethodList new openInterface:#singleMethodWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
     #(#FullSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
        #name: #singleMethodWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
        #window: 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
       #(#WindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
          #label: 'SingleSelectorList'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
          #name: 'SingleSelectorList'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
          #min: #(#Point 0 0)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
          #max: #(#Point 1024 721)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
          #bounds: #(#Rectangle 12 22 312 322)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        #component: 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
       #(#SpecCollection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
          #collection: #(
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
           #(#LabelSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
              #label: 'MethodName'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
              #name: 'MethodLabel'
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
              #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 25 0)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
              #translateLabel: true
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
              #labelChannel: #methodLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
              #menu: #menuHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
           )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
           )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
         
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
        )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    "Modified: / 1.3.2000 / 20:50:15 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    "
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   105
     UIPainter new openOnClass:Tools::MethodList andSelector:#windowSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   106
     Tools::MethodList new openInterface:#windowSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   107
     Tools::MethodList open
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    ^ 
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   113
     #(FullSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   114
        name: windowSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   115
        window: 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   116
       (WindowSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   117
          label: 'SelectorList'
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   118
          name: 'SelectorList'
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   119
          min: (Point 0 0)
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   120
          bounds: (Rectangle 0 0 300 300)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
        )
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   122
        component: 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   123
       (SpecCollection
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   124
          collection: (
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   125
           (SequenceViewSpec
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   126
              name: 'List'
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   127
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   128
              tabable: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   129
              model: selectedMethodNameIndices
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   130
              menu: menuHolder
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   131
              hasHorizontalScrollBar: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   132
              hasVerticalScrollBar: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   133
              miniScrollerHorizontal: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   134
              isMultiSelect: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   135
              valueChangeSelector: selectionChangedByClick
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   136
              useIndex: true
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   137
              sequenceList: browserNameList
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   138
              doubleClickChannel: doubleClickChannel
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   139
              properties: 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   140
             (PropertyListDictionary
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   141
                canDropSelector: canDropContext:
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   142
                dragArgument: nil
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   143
                dropArgument: nil
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   144
                dropSelector: doDropContext:
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   145
              )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
            )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
           )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
         
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
        )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
      )
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
!MethodList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    ^ #(
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   167
        environmentHolder
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   168
        #(doubleClickChannel action)
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   169
        #filterClassVars
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   170
        #forceGeneratorTrigger
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   171
        #immediateUpdate
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   172
        #inGeneratorHolder
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   173
        #menuHolder
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   174
        #methodCategoryHolder
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   175
        #packageFilter
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   176
        #selectedMethods
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   177
        #selectionChangeCondition
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   178
        #showCoverageInformation
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   179
        #showImageResourceMethodsImages
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   180
        #showMethodComplexity
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   181
        #showMethodInheritance
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   182
        #showMethodTypeIcon
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   183
        #sortBy
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   184
        #updateTrigger
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   185
        #variableFilter
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   186
        #showSyntheticMethods
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
      ).
9421
7f9db26667e2 changed: #aspectSelectors
Claus Gittinger <cg@exept.de>
parents: 9252
diff changeset
   188
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
   189
    "Modified: / 24-02-2014 / 10:37:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
!MethodList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
browserNameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    browserNameList isNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   196
        browserNameList := List new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    ^ browserNameList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "Modified: / 31.1.2000 / 00:42:44 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "Created: / 5.2.2000 / 22:38:32 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
defaultSlaveModeValue
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    ^ false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
filterClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    filterClassVars isNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   210
        filterClassVars := false asValue.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   211
        filterClassVars addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    ^  filterClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
filterClassVars:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    filterClassVars notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   218
        filterClassVars removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
    filterClassVars := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    filterClassVars notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   222
        filterClassVars addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
methodLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
    ^ self pseudoListLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    "Created: / 1.3.2000 / 20:50:07 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
methodList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    ^ methodList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
selectedMethodNameIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    selectedMethodNameIndices isNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   238
        selectedMethodNameIndices := ValueHolder new.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   239
        selectedMethodNameIndices addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    ^ selectedMethodNameIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    "Modified: / 5.2.2000 / 00:31:48 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    "Created: / 5.2.2000 / 22:59:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
selectedMethods
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    ^ self selectionHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
selectedMethods:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    ^ self selectionHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
8197
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   255
showImageResourceMethodsImages
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   256
    showImageResourceMethodsImages isNil ifTrue:[
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   257
        showImageResourceMethodsImages := false asValue.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   258
        showImageResourceMethodsImages addDependent:self
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   259
    ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   260
    ^  showImageResourceMethodsImages
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   261
!
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   262
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   263
showImageResourceMethodsImages:aValueHolder
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   264
    showImageResourceMethodsImages notNil ifTrue:[
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   265
        showImageResourceMethodsImages removeDependent:self
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   266
    ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   267
    showImageResourceMethodsImages := aValueHolder.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   268
    showImageResourceMethodsImages notNil ifTrue:[
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   269
        showImageResourceMethodsImages addDependent:self
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   270
    ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   271
!
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
   272
6259
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   273
showMethodComplexity
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   274
    showMethodComplexity isNil ifTrue:[
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   275
        showMethodComplexity := false asValue.
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   276
        showMethodComplexity addDependent:self
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   277
    ].
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   278
    ^  showMethodComplexity
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   279
!
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   280
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   281
showMethodComplexity:aValueHolder
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   282
    showMethodComplexity notNil ifTrue:[
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   283
        showMethodComplexity removeDependent:self
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   284
    ].
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   285
    showMethodComplexity := aValueHolder.
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   286
    showMethodComplexity notNil ifTrue:[
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   287
        showMethodComplexity addDependent:self
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   288
    ].
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   289
!
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   290
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
showMethodInheritance
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    showMethodInheritance isNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   293
        showMethodInheritance := false asValue.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   294
        showMethodInheritance addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    ^  showMethodInheritance
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
showMethodInheritance:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    showMethodInheritance notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   301
        showMethodInheritance removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
    showMethodInheritance := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    showMethodInheritance notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   305
        showMethodInheritance addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
6268
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   309
showMethodTypeIcon
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   310
    showMethodTypeIcon isNil ifTrue:[
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   311
        showMethodTypeIcon := true asValue.
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   312
        showMethodTypeIcon addDependent:self
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   313
    ].
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   314
    ^  showMethodTypeIcon
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   315
!
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   316
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   317
showMethodTypeIcon:aValueHolder
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   318
    showMethodTypeIcon notNil ifTrue:[
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   319
        showMethodTypeIcon removeDependent:self
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   320
    ].
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   321
    showMethodTypeIcon := aValueHolder.
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   322
    showMethodTypeIcon notNil ifTrue:[
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   323
        showMethodTypeIcon addDependent:self
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   324
    ].
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   325
!
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
   326
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   327
showSyntheticMethods
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   328
    showSyntheticMethods isNil ifTrue:[
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   329
        showSyntheticMethods := false asValue.
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   330
        showSyntheticMethods addDependent:self
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   331
    ].
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   332
    ^  showSyntheticMethods
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   333
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   334
    "Created: / 13-04-2012 / 16:03:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   335
!
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   336
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   337
showSyntheticMethods:aValueHolder
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   338
    showSyntheticMethods notNil ifTrue:[
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   339
        showSyntheticMethods removeDependent:self
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   340
    ].
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   341
    showSyntheticMethods := aValueHolder.
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   342
    showSyntheticMethods notNil ifTrue:[
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   343
        showSyntheticMethods addDependent:self
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   344
    ].
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   345
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   346
    "Created: / 13-04-2012 / 16:03:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   347
!
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   348
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
    variableFilter isNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   351
        variableFilter := nil asValue.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   352
        variableFilter addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
    ^  variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
variableFilter:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    variableFilter notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   359
        variableFilter removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    variableFilter := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    variableFilter notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   363
        variableFilter addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
!MethodList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
delayedUpdate:something with:aParameter from:changedObject
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   370
    |cls clsName sel oldMethod newMethod methods newSelection
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
     selectionHolder selection needSelectionChange|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
    selectionHolder := self selectedMethods.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    selection := selectionHolder value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
   376
    changedObject == environment ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   377
        classes notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   378
            something == #classDefinition ifTrue:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   379
                cls := aParameter.
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   380
                clsName := cls name.        
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   381
                (classes contains:[:aClass | aClass name = clsName]) ifFalse:[
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   382
                    ^ self   "/ I don't care for that class
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   383
                ].
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
   384
                classes := classes collect:[:eachClass | (environment classNamed:eachClass name) ].
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   385
                self invalidateList.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   386
"/                self updateList.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   387
                ^ self.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   388
            ].
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   389
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   390
            something == #methodCategory ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   391
                "/ ignore here - methodCategoryList will tell me if required
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   392
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   393
            ].
6663
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   394
            (something == #classOrganization
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   395
            or:[ something == #methodCategoryAdded
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   396
            or:[ something == #methodCategoryRemoved
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   397
            or:[ something == #methodCategoriesRemoved
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   398
            or:[ something == #methodCategoryRenamed ]]]]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   399
                "/ ignore here - methodCategoryList will tell me if required
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   400
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   401
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
11851
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   403
            (something == #methodInClass 
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   404
            or:[something == #methodCoverageInfo]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   405
                "/ a method has been added/changed
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   406
                cls := aParameter at:1.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   407
                (classes includesIdentical:cls) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   408
                    sel := aParameter at:2.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   409
                    oldMethod := aParameter at:3.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   410
                    newMethod := cls compiledMethodAt:sel.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   411
                    (oldMethod notNil and:[newMethod notNil]) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   412
                        "a method was changed & acccepted;
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   413
                         No need for a rescan of the methodDictionary;
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   414
                         however, ensure that the refs to the old method are updated
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   415
                        "
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   416
                        methods := selection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   417
                        methods size > 0 ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   418
                            (methods includesIdentical:oldMethod) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   419
                                needSelectionChange := true.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   420
                            ]
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   421
                        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   422
                        methodList replaceAllIdentical:oldMethod with:newMethod.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   423
                        lastSelectedMethods notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   424
                            lastSelectedMethods replaceAllIdentical:oldMethod with:newMethod
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   425
                        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   426
                        methods size > 0 ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   427
                            methods := methods asOrderedCollection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   428
                            methods replaceAllIdentical:oldMethod with:newMethod.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   429
                        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   431
                        needSelectionChange == true ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   432
                            selectionHolder setValue:methods.
6575
94f336bcb07b update notifiaction from other browsers (refix)
Claus Gittinger <cg@exept.de>
parents: 6490
diff changeset
   433
                            "/ self enqueueDelayedMethodsSelectionChanged.
94f336bcb07b update notifiaction from other browsers (refix)
Claus Gittinger <cg@exept.de>
parents: 6490
diff changeset
   434
                            "/ need this to inform my browser that method was changed
94f336bcb07b update notifiaction from other browsers (refix)
Claus Gittinger <cg@exept.de>
parents: 6490
diff changeset
   435
                            "/ by someone else.
94f336bcb07b update notifiaction from other browsers (refix)
Claus Gittinger <cg@exept.de>
parents: 6490
diff changeset
   436
                            selectionHolder changed.
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   437
                        ].
10376
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   438
                        "/JV@2011-07-22: Update always - I need to see immediately that
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   439
                        "/the method has changed. Also, add/remove breakpoint etc.
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   440
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   441
"/                        (variableFilter value size > 0
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   442
"/                        or:[oldMethod package ~= newMethod package
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   443
"/                        or:[oldMethod resources ~= newMethod resources
8a61751a59fa method entry updating fixed (it is updated whenever a method is changed)
vrany
parents: 10363
diff changeset
   444
"/                        or:[showMethodComplexity value == true]]])
11505
f6848fffd318 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11385
diff changeset
   445
                        self autoUpdateOnChange ifTrue:[
f6848fffd318 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 11385
diff changeset
   446
                            "/ only update that method's entry
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   447
                            self updateListEntryFor:newMethod.    
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   448
                            "/ sigh - must invalidate
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   449
                            "/ self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   450
                        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   451
                        ^ self.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   452
                    ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   453
                    "/ method was added - update the methodList
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   454
                    "/ Q: is this needed (methodCategoryList should send me a new inGenerator)
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   455
                    self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   456
                ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   457
                ^ self.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   458
            ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   459
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   460
            something == #methodInClassRemoved ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   461
                cls := aParameter at:1.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   462
                (classes includesIdentical:cls) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   463
                    sel := aParameter at:2.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   464
                    "/ method was removed - update the methodList
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   465
                    "/ Q: is this needed (methodCategoryList should send me a new inGenerator)
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   466
                    self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   467
                ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   468
                ^ self.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   469
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
10357
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   471
            something == #methodCoverageInfo ifTrue:[
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   472
                "/ already checked if it is one of my classes
11557
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   473
                self updateListEntryFor:aParameter.    
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   474
"/                self enqueueDelayedUpdateList.
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   475
"/                listValid == true ifTrue:[
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   476
"/                    self invalidateList.
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   477
"/                ].
10357
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   478
                ^ self.
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   479
            ].
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   480
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   481
            (something == #methodTrap 
11550
e53cac96740a changed:
Claus Gittinger <cg@exept.de>
parents: 11505
diff changeset
   482
            or:[ something == #lastTestRunResult 
e53cac96740a changed:
Claus Gittinger <cg@exept.de>
parents: 11505
diff changeset
   483
            or:[ something == #privacyOfMethod ]]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   484
                cls := aParameter at:1.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   485
                sel := aParameter at:2.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   486
                (classes includesIdentical:cls) ifFalse:[ ^ self].
11550
e53cac96740a changed:
Claus Gittinger <cg@exept.de>
parents: 11505
diff changeset
   487
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   488
                newMethod := cls compiledMethodAt:sel.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   489
                newMethod isNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   490
                    self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   491
                    ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   492
                ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
11550
e53cac96740a changed:
Claus Gittinger <cg@exept.de>
parents: 11505
diff changeset
   494
                ((something == #privacyOfMethod) or:[something == #lastTestRunResult]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   495
                    self updateListEntryFor:newMethod.    
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   496
                ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   497
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   498
                (something == #methodTrap) ifTrue:[ 
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   499
                    newMethod isWrapped ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   500
                        oldMethod := newMethod originalMethod
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   501
                    ] ifFalse:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   502
                        selection size > 0 ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   503
                            oldMethod := selection detect:[:each | each isWrapped and:[each originalMethod == newMethod]] ifNone:nil.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   504
                        ]
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   505
                    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   507
                    selection size > 0 ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   508
                        (selection includesIdentical:oldMethod) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   509
                            needSelectionChange := true.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   510
                        ]
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   511
                    ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   512
                    methodList replaceAllIdentical:oldMethod with:newMethod.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   513
                    lastSelectedMethods notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   514
                        lastSelectedMethods replaceAllIdentical:oldMethod with:newMethod
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   515
                    ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   516
                    selection size > 0 ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   517
                        selection := selection asOrderedCollection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   518
                        selection replaceAllIdentical:oldMethod with:newMethod.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   519
                    ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   520
                    needSelectionChange == true ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   521
                        selectionHolder changed.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   522
                    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   524
                    "/ actually, could just change that single item ...
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   525
                    "/ ... might be cheaper, if list is huge.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   526
                    "/ only update that methods entry
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   527
                    self updateListEntryFor:newMethod.    
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   528
                    "/ self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   529
                ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   530
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   531
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   533
            (something == #projectOrganization
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   534
            or:[something == #lastTestRunResult]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   535
                aParameter notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   536
                    cls := aParameter at:1.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   537
                    cls notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   538
                        ((classes includesIdentical:cls theNonMetaclass)
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   539
                        or:[(classes includesIdentical:cls theMetaclass)]) ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   540
                            self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   541
                        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   542
                    ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   543
                ] ifFalse:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   544
                    self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   545
                ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   546
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   547
            ].
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   548
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   549
            "/ everything else is ignored
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   550
            "/ self halt.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   551
        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   552
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
"/    something == #organization ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
"/self halt:'no longer'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
"/^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
"/        "/ a methods cateory has changed
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
"/        (classes includesIdentical:changedObject) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
"/            aParameter isSymbol ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
"/                "/ a method with a new category
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
"/                (self methodList includesIdentical:(changedObject compiledMethodAt:aParameter)) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
"/                    self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
"/                ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
"/                ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
"/            "/ a new category (no method yet)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
"/            self invalidateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
"/        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
"/    something == #methodDictionary ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
"/self halt:'no longer'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
"/^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
"/        "/ a method has been added/removed
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
"/        (classes includesIdentical:changedObject) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
"/            aParameter isArray ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   579
"/                sel := aParameter at:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
"/                oldMethod := aParameter at:2.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
"/                newMethod := changedObject compiledMethodAt:sel.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
"/                oldMethod notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
"/                    "a method was changed & acccepted;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
"/                     No need for a rescan of the methodDictionary;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
"/                     however, ensure that the refs to the old method are updated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
"/                    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
"/                    methods := selection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
"/                    methods size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
"/                        (methods includesIdentical:oldMethod) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
"/                            needSelectionChange := true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
"/                        ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   592
"/                    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   593
"/                    methodList replaceAllIdentical:oldMethod with:newMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
"/                    lastSelectedMethods notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   595
"/                        lastSelectedMethods replaceAllIdentical:oldMethod with:newMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   596
"/                    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   597
"/                    methods size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
"/                        methods := methods asOrderedCollection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
"/                        methods replaceAllIdentical:oldMethod with:newMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   600
"/                    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   601
"/                    needSelectionChange == true ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   602
"/                        selectionHolder setValue:methods.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   603
"/                        selectionHolder changed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   604
"/                    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   605
"/                    ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   606
"/                ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   608
"/            "/ class has changed must update the methodList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   609
"/            self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
"/        ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
"/    something == #projectOrganization ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   615
"/        ((classes includesIdentical:changedObject theNonMetaclass)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   616
"/        or:[(classes includesIdentical:changedObject theMetaclass)]) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   617
"/            self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   618
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
"/        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
    changedObject == sortBy ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   623
        listValid ~~ true ifTrue:[  "/ could be nil
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   624
            inGeneratorHolder value isNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   625
                "/ ok, no need to react on that one 
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   626
                "/ (will invalidate anyway, once I have more info at hand)
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   627
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   628
            ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   629
        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   630
        self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   631
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
    (changedObject == variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    or:[changedObject == filterClassVars
6259
e440c14b02aa experimental display of method complexity
Claus Gittinger <cg@exept.de>
parents: 5998
diff changeset
   636
    or:[changedObject == showMethodInheritance
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   637
    or:[changedObject == showMethodComplexity
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   638
    or:[changedObject == showSyntheticMethods
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   639
    ]]]]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   640
        self invalidateList.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   641
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
    changedObject == selectedMethodNameIndices ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   645
        newSelection := self selectedMethodNameIndices value collect:[:idx | methodList at:idx].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   646
        newSelection ~= selection ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   647
            selectionHolder value:newSelection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   648
            lastSelectedMethods := newSelection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   649
            lastSelectedMethods notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   650
                lastSelectedMethods := lastSelectedMethods asOrderedCollection
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   651
            ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   652
        ] ifFalse:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   653
            "/ a reselect - force update
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
"/            selection size == 1 ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   655
                selectionHolder setValue:newSelection.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   656
                selectionHolder changed:#value.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
"/            ].
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   658
        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   659
        ^ self 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
    changedObject == selectionHolder ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   662
        self selectedMethodsChanged.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   663
        lastSelectedMethods := selectionHolder value.
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   664
        lastSelectedMethods notNil ifTrue:[
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   665
            lastSelectedMethods := lastSelectedMethods asOrderedCollection
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   666
        ].
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   667
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
"/    something == #methodTrap ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
"/self halt:'no longer'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
"/^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
"/        (classes includesIdentical:changedObject) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
"/            newMethod := changedObject compiledMethodAt:aParameter.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
"/            newMethod isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
"/                self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
"/                ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
"/            newMethod isWrapped ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
"/                oldMethod := newMethod originalMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
"/            ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
"/                selection size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
"/                    oldMethod := selection detect:[:each | each isWrapped and:[each originalMethod == newMethod]] ifNone:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
"/                ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
"/
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
"/            selection size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
"/                (selection includesIdentical:oldMethod) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
"/                    needSelectionChange := true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
"/                ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
"/"/            methodList replaceAllIdentical:oldMethod with:newMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
"/            lastSelectedMethods notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
"/                lastSelectedMethods replaceAllIdentical:oldMethod with:newMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
"/            selection size > 0 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
"/                selection := selection asOrderedCollection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
"/                selection replaceAllIdentical:oldMethod with:newMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
"/            needSelectionChange == true ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
"/                selectionHolder changed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
"/            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
"/            self invalidateList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
"/            ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
"/        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
"/    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
    super delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   709
    "Created: / 05-02-2000 / 13:42:14 / cg"
11557
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   710
    "Modified: / 05-06-2012 / 23:47:15 / cg"
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   711
    "Modified: / 24-08-2013 / 00:41:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   713
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
selectedMethodsChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
    "the set of selected methods has changed;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
     update the selection-index collection (for the selectionInListView)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
    |indices methods reverseMap 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
     selectedMethodsHolder selectedMethods selectedMethodNameIndicesHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
    methods := methodList ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
    methods size == 0 ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   723
        "/ this may happen during early startup, 
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   724
        "/ when invoked with a preset methodSelection,
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   725
        "/ and the methodGenerator has not yet been setup
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   726
        "/ to not clobber the selection, defer the update
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   727
        "/ until the methodList arrives ...
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   728
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
    selectedMethodsHolder := self selectedMethods.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
    selectedMethods := selectedMethodsHolder value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
    "/ check if all is selected (likely)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
    ((selectedMethods size == methodList size)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
    and:[selectedMethods = methodList]) ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   737
        indices := (1 to:selectedMethods size)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
    ] ifFalse:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   739
        selectedMethods size > 100 ifTrue:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   740
            "/ check if all is selected (likely)
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   741
            ((selectedMethods size == methodList size)
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   742
            and:[selectedMethods = methodList]) ifTrue:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   743
                indices := (1 to:selectedMethods size)
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   744
            ] ifFalse:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   745
                "/ for big collections, generate a reverse map
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   746
                reverseMap := IdentityDictionary new.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   747
                methods keysAndValuesDo:[:idx :mthd | reverseMap at:mthd put:idx].
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   748
                indices := selectedMethods collect:[:eachSelectedMethod |
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   749
                    reverseMap at:eachSelectedMethod ifAbsent:0
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   750
                ]
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   751
            ]
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   752
        ] ifFalse:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   753
            indices := (selectedMethods ? #()) collect:[:eachSelectedMethod |
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   754
                methods identityIndexOf:eachSelectedMethod.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   755
            ]
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   756
        ].
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   757
        indices := indices select:[:idx | idx ~= 0].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
    selectedMethodNameIndicesHolder := self selectedMethodNameIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
    selectedMethodNameIndicesHolder value ~= indices ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   762
        selectedMethodNameIndicesHolder value:indices.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
selectionChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
    |methods|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
    methods := ((self selectedMethodNameIndices value) ? #()) collect:[:idx | methodList at:idx].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
    methods notEmpty ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   771
        lastSelectedMethods := methods asOrderedCollection.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
    "/ to allow reselect, change my valueHolder, even if the same collection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
"/    self selectedMethods value ~= methods ifTrue:[
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   775
        self selectedMethods value:methods asOrderedCollection
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   776
"/    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   778
    "Created: / 05-02-2000 / 13:42:14 / cg"
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   779
    "Modified: / 05-02-2000 / 23:32:20 / cg"
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   780
    "Modified: / 13-06-2013 / 12:19:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
selectionChangedByClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
    "we are not interested in that - get another notification
12541
f2e96c5e6d41 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12535
diff changeset
   785
     via the changed valueHolder "
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
update:something with:aParameter from:changedObject
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   789
    |cls clsName sel mthd mustFlushInheritanceInfo|
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   790
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   791
    mustFlushInheritanceInfo := true.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
    "/ some can be ignored immediately
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
   794
    changedObject == environment ifTrue:[
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
        classes isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   796
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
        something isNil ifTrue:[
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
   799
            "/ self halt "/ huh - environment changed - so what ?
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
        something == #classComment ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   803
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
        something == #classVariables ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   806
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   807
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   808
        something == #organization ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   810
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
        something == #methodCategory ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
            "/ ignore here - methodCategoryList will tell me if required
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
            ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
        ].
6663
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   815
        (something == #classOrganization
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   816
        or:[ something == #methodCategoryAdded
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   817
        or:[ something == #methodCategoryRemoved
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   818
        or:[ something == #methodCategoriesRemoved
1453d4f33815 changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6575
diff changeset
   819
        or:[ something == #methodCategoryRenamed ]]]]) ifTrue:[
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
            "/ ignore here - methodCategoryList will tell me if required
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
            ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
        ].
10357
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   823
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   824
        something == #methodCoverageInfo ifTrue:[
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   825
            self showCoverageInformation value ifFalse:[^ self].
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   826
            mthd := aParameter.
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   827
            (classes notNil and:[classes includesIdentical:mthd mclass]) ifFalse:[
11851
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   828
                ^ self   "/ I don't care for that class
10357
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   829
            ].
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   830
            mustFlushInheritanceInfo := false.    
10357
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   831
        ].
b3239032903c more coverage info
Claus Gittinger <cg@exept.de>
parents: 10298
diff changeset
   832
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   833
        (something == #methodTrap 
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   834
        or:[ something == #methodPrivacy
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   835
        or:[ something == #lastTestRunResult] ]) ifTrue:[
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   836
            self window shown ifFalse:[
10861
253c00821956 changed:
vrany
parents: 10674
diff changeset
   837
                "JV@2011-11-17: Do not break the dependency here,
253c00821956 changed:
vrany
parents: 10674
diff changeset
   838
                 because then the window won't get updates once
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   839
                 deiconified -> leads to confusing behavior
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   840
                 (browser shows obsolete info)"
10861
253c00821956 changed:
vrany
parents: 10674
diff changeset
   841
                "/changedObject removeDependent:self. "/ ?????
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
   842
                self invalidateList.
5998
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   843
                ^ self
6e40a20b361a icons & privacy update
Claus Gittinger <cg@exept.de>
parents: 5885
diff changeset
   844
            ].
12541
f2e96c5e6d41 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12535
diff changeset
   845
            cls := aParameter at:1.
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   846
            sel := aParameter at:2.
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   847
            mthd := cls compiledMethodAt:sel.
12649
d10969f7655a class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12647
diff changeset
   848
            (mthd notNil and:[mthd isWrapped or:[mthd isMethodWithBreakpoints]]) ifTrue:[
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   849
                (methodList includes:mthd originalMethod) ifTrue:[
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   850
                    methodList replaceAll:mthd originalMethod with:mthd.
12673
cfeafdc3f22d class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12649
diff changeset
   851
                    lastSelectedMethods notNil ifTrue:[
cfeafdc3f22d class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12649
diff changeset
   852
                        lastSelectedMethods replaceAll:mthd originalMethod with:mthd.
cfeafdc3f22d class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12649
diff changeset
   853
                    ].
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   854
                ]
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
   855
            ].
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   856
            mustFlushInheritanceInfo := false.    
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   857
        ].
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   858
        something == #newClass ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   859
            ^ self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   860
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   861
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   862
        (something == #methodInClass 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   863
        or:[ something == #methodInClassRemoved ]) ifTrue:[
12530
41e431093ed3 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12505
diff changeset
   864
            cls := aParameter first.
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   865
            clsName := cls name.    
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   866
            (classes contains:[:aClass | aClass name = clsName]) ifFalse:[
12530
41e431093ed3 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12505
diff changeset
   867
                ^ self   "/ I dont care for that class
41e431093ed3 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12505
diff changeset
   868
            ].
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   869
            sel := aParameter second.
12091
98485deb39c2 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12052
diff changeset
   870
            (methodList contains:[:mthd | mthd getMclass notNil and:[mthd selector = sel]]) ifFalse:[
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   871
                mustFlushInheritanceInfo := false.
12091
98485deb39c2 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12052
diff changeset
   872
                self window topView hasFocus ifFalse:[
98485deb39c2 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12052
diff changeset
   873
                    self enqueueDelayedUpdate:something with:aParameter from:changedObject.
98485deb39c2 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12052
diff changeset
   874
                    ^ self.
98485deb39c2 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12052
diff changeset
   875
                ].
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   876
            ].
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   877
        ].
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   878
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   879
        mustFlushInheritanceInfo ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   880
            "/ as the organisation changes, flush my remembered redefinition-cache-info
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   881
            classAndSelectorsRedefinedBySubclassesOfClass := nil.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
   882
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   883
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   884
        something == #classDefinition ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   885
            cls := aParameter.
12554
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   886
            clsName := cls name.    
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   887
            (classes contains:[:aClass | aClass name = clsName]) ifFalse:[
79d13f7b87c0 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12541
diff changeset
   888
                ^ self   "/ I don't care for that class
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   889
            ].
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
   890
            self enqueueDelayedUpdate:something with:aParameter from:changedObject.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   891
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   892
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   893
        something == #classRemove ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   894
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   895
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   896
        something == #classRename ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   897
            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   898
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   899
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   900
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   901
    "/ these must lead to immediate update of the selectedMethods collection
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   902
    "/ (otherwise, that collection might be updated too late, leading to
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   903
    "/ an obsolete methods code being shown by the codeView.
11851
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   904
    (something == #methodInClass 
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   905
    or:[ something == #methodCoverageInfo ]) ifTrue:[
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   906
        "/ as the organisation changes, flush my remembered redefinition-cache-info
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   907
        classAndSelectorsRedefinedBySubclassesOfClass := nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   908
        cls := aParameter at:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   909
        (classes includesIdentical:cls) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   910
            ^ self   "/ I dont care for that class
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   911
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   912
        self enqueueDelayedUpdate:something with:aParameter from:changedObject.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   913
        ^ self
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   914
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   915
11851
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   916
    something == #coverageInfo ifTrue:[
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   917
        listValid == true ifTrue:[
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   918
            self enqueueDelayedUpdateList
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   919
        ].
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   920
        ^ self.
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   921
    ].
8184ad4d5930 changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11639
diff changeset
   922
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   923
    something == #methodInClassRemoved ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   924
        cls := aParameter at:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   925
        (classes includesIdentical:cls) ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   926
            ^ self   "/ I dont care for that class
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   927
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   928
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   929
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
    super update:something with:aParameter from:changedObject
6846
b7d2d17e4ae5 testresult indicators
Claus Gittinger <cg@exept.de>
parents: 6841
diff changeset
   931
10861
253c00821956 changed:
vrany
parents: 10674
diff changeset
   932
    "Modified: / 17-11-2011 / 19:22:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11557
2b871152c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 11550
diff changeset
   933
    "Modified: / 05-06-2012 / 23:41:50 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   934
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   935
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   936
!MethodList methodsFor:'drag & drop'!
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   937
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   938
canDropContext:aDropContext
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   939
    |methods|
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   940
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   941
    aDropContext sourceWidget == aDropContext targetWidget ifTrue:[^ false].
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   942
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   943
    methods := aDropContext dropObjects collect:[:obj | obj theObject].
7122
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   944
    (methods conform:[:aMethod | aMethod isMethod]) ifFalse:[^ false].
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   945
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   946
    self masterApplication theSingleSelectedClass isNil ifTrue:[^ false].
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   947
    ^ true
7122
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   948
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   949
    "Modified: / 13-09-2006 / 11:43:54 / cg"
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   950
!
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   951
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   952
doDropContext:aDropContext
8596
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   953
    |methods browser|
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   954
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   955
    methods := aDropContext dropObjects collect:[:aDropObject | aDropObject theObject].
7122
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   956
    (methods conform:[:something | something isMethod]) ifFalse:[^ self].
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   957
8596
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   958
    browser := self masterApplication.
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   959
    aDropContext dragType == DropContext dragTypeCopy ifTrue:[
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   960
        browser
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   961
            copyMethods:methods 
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   962
            toClass:(browser theSingleSelectedClass).
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   963
    ] ifFalse:[
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   964
        browser
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   965
            moveMethods:methods 
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   966
            toClass:(browser theSingleSelectedClass).
731b9e2442d9 better drop
Claus Gittinger <cg@exept.de>
parents: 8474
diff changeset
   967
    ].
7122
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   968
e672979a8111 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7057
diff changeset
   969
    "Modified: / 13-09-2006 / 11:43:44 / cg"
6774
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   970
! !
ae9ed5b0b548 move method via drag and drop
Claus Gittinger <cg@exept.de>
parents: 6697
diff changeset
   971
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   972
!MethodList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   973
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   974
isMethodToBeShown:aMethod 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   975
    "invoked, when we get a change for aMethod which was previously not
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   976
     in the list (for example, if I show a filtered list).
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   977
     Check if that single method is to be shown now.
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   978
     Used to speed up update for senders/string/implementors lists"
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   979
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   980
    |generator|
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   981
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   982
    generator := inGeneratorHolder value.
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   983
    generator isNil ifTrue:[
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   984
        ^ false
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   985
    ].
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   986
    
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   987
    "/ generator generates nil-selector entries
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   988
    "/ to pass multiple-class and multiple-protocol info
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   989
    
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   990
    generator do:[:cls :cat :sel :mthd | 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   991
        mthd == aMethod ifTrue:[
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   992
            mthd isSynthetic ifFalse:[ 
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   993
                sel notNil ifTrue:[
11639
ae2097b7ee12 changed:
Claus Gittinger <cg@exept.de>
parents: 11557
diff changeset
   994
"/ cg: no longer filter those...
ae2097b7ee12 changed:
Claus Gittinger <cg@exept.de>
parents: 11557
diff changeset
   995
"/                    (packageFilter value isNil 
ae2097b7ee12 changed:
Claus Gittinger <cg@exept.de>
parents: 11557
diff changeset
   996
"/                    or:[ packageFilter value includes:mthd package ]) ifTrue:[
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   997
                        ^ true
11639
ae2097b7ee12 changed:
Claus Gittinger <cg@exept.de>
parents: 11557
diff changeset
   998
"/                    ]
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
   999
                ]
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1000
            ].
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1001
            ^ false
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1002
        ]
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1003
    ].
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1004
    ^ false
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1005
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1006
    "Created: / 17-08-2011 / 15:03:34 / cg"
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1007
!
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1008
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1009
listOfMethodNames
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1010
    |methods entries selectorBag newNameList allClasses newClasses 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1011
     allCategories                 "allSelectors"
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1012
     generator doShowClass doShowClassFirst doShowCategory enforceClassAndProtocolInList 
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1013
     theMethod sortByClass anyMethodToWatch mclass
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1014
     packageFilterValue nameListEntryForExtensions 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1015
     suppressInheritanceInfoNow startTime|
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1016
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1017
    suppressInheritanceInfoNow := (showMethodInheritance value ? true) not.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1018
    startTime := Timestamp now.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1019
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1020
    generator := inGeneratorHolder value.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1021
    generator isNil ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1022
        ^ #()
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1023
    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1024
    allClasses := IdentitySet new.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1025
    allCategories := IdentitySet new.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1026
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1027
    "/ allSelectors := Set new.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1028
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1029
    newClasses := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1030
    selectorBag := Bag new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1031
    entries := OrderedCollection new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1032
    enforceClassAndProtocolInList := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1033
    anyMethodToWatch := false.
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1034
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1035
    "/ no longer filter those
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1036
    "/ JV@2013-09-17: Why on hell not? A little explanation please!!
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1037
    "/ Enabled again, because when i select package in a browser I expect
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1038
    "/ to see only methods belonging to that package!!
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1039
    packageFilterValue := packageFilter value.
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1040
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1041
    "/ generator generates nil-selector entries
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1042
    "/ to pass multiple-class and multiple-protocol info
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1043
    nameListEntryForExtensions := self class nameListEntryForExtensions.
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1044
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1045
    generator do:[:cls :cat :sel :mthd |
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1046
        |categoryIsExtensionsPseudoCategory|
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1047
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1048
        categoryIsExtensionsPseudoCategory := (cat = nameListEntryForExtensions).
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1049
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1050
        (cls isNil and:[ cat isNil and:[ sel isNil ] ]) ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1051
            enforceClassAndProtocolInList := true
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1052
        ] ifFalse:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1053
            cls notNil ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1054
                allClasses add:cls.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1055
            ].
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1056
"/            cat notNil ifTrue:[
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1057
"/                allCategories add:cat.
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1058
"/            ].
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1059
            "/ JV: Filter method through package filter
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1060
            "/ but not, if it is an extension method and we are showing extensions
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1061
            (mthd notNil 
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1062
                and:[ (mthd isSynthetic not or:[showSyntheticMethods value == true])
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1063
                and:[ sel notNil ]]
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1064
            ) ifTrue:[ 
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1065
                (packageFilterValue isNil 
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1066
                    or:[ (packageFilterValue includes:mthd package)
11914
0aee263d2bcd comment/format in: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 11876
diff changeset
  1067
                    or:[ categoryIsExtensionsPseudoCategory and:[ mthd isExtension] ]]
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1068
                ) ifTrue:[
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1069
                    entries add:(Array with:cls with:sel with:mthd).
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1070
                    selectorBag add:sel.
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1071
                    newClasses add:cls.
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1072
                    
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1073
                    allCategories add:mthd category.
10674
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1074
                    "/ allSelectors add:sel.
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1075
                ]
351c90b0a00e changed: #listOfMethodNames
Claus Gittinger <cg@exept.de>
parents: 10640
diff changeset
  1076
            ]
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1077
        ].
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1078
        (mthd notNil and:[ mthd isWrapped ]) ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1079
            (mthd isTiming or:[ mthd isCounting or:[ mthd isCountingMemoryUsage ] ]) ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1080
                anyMethodToWatch := true
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1081
            ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1082
        ].
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1083
    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1084
    showMethodInheritance value ~~ false ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1085
        "/ collect redefinition information once (big speedup for #methodIsRedefinedbelow)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1086
        classAndSelectorsRedefinedBySubclassesOfClass isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1087
            classAndSelectorsRedefinedBySubclassesOfClass := IdentityDictionary new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1088
        ].
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1089
        allClasses do:[:cls | 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1090
            |d|
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1091
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1092
            d := classAndSelectorsRedefinedBySubclassesOfClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1093
            (d notNil and:[ (d includesKey:cls) not ]) ifTrue:[
8206
b500138740eb *** empty log message ***
fm
parents: 8198
diff changeset
  1094
                cls isLoaded ifTrue:[
b500138740eb *** empty log message ***
fm
parents: 8198
diff changeset
  1095
                    d at:cls put:(self setOfAllSelectorsImplementedBelow:cls)
b500138740eb *** empty log message ***
fm
parents: 8198
diff changeset
  1096
                ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1097
            ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1098
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1099
    ].
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1100
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1101
    "/ multiple classes must: add the className for some
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1102
    
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1103
    doShowClass := enforceClassAndProtocolInList or:[ allClasses size > 1 ].
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1104
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1105
    "/ multiple categories: must add the categorie for some
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1106
    
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1107
    doShowCategory := enforceClassAndProtocolInList or:[ allCategories size > 1 ].
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1108
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1109
    doShowClassFirst := doShowClass.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1110
    doShowClassFirst := doShowClass and:[ sortBy value == #class ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1111
    sortBy value == false ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1112
        "/ do not sort
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1113
    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1114
        (doShowClass not and:[ sortBy value == #class ]) ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1115
            "/ multiple classes must add the className for some
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1116
            "/ check, if doShowClass must be enforced
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1117
            entries do:[:entry | 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1118
                |cls sel mthd s needClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1119
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1120
                cls := entry at:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1121
                sel := entry at:2.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1122
                mthd := entry at:3.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1123
                doShowClass ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1124
                    doShowClass := (selectorBag occurrencesOf:sel) > 1
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1125
                ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1126
            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1127
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1128
        sortByClass := doShowClass and:[ sortBy value == #class ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1129
        sortByClass ifTrue:[
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1130
            entries 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1131
                sort:[:a :b | 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1132
                    |nmA nmB clsNmA clsNmB nsNmA nsNmB|
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1133
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1134
                    clsNmA := (a at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1135
                    clsNmB := (b at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1136
                    clsNmA = clsNmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1137
                        nmA := (a at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1138
                        nmB := (b at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1139
                        nmA = nmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1140
                            nsNmA := (a at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1141
                            nsNmB := (b at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1142
                            nsNmA < nsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1143
                        ] ifFalse:[ nmA < nmB ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1144
                    ] ifFalse:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1145
                        clsNmA < clsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1146
                    ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1147
                ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1148
        ] ifFalse:[
7610
3f630d7a4a1a sort by category
Claus Gittinger <cg@exept.de>
parents: 7502
diff changeset
  1149
            sortBy value == #category ifTrue:[
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1150
                entries 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1151
                    sort:[:a :b | 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1152
                        |nmA nmB catA catB clsNmA clsNmB nsNmA nsNmB|
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1153
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1154
                        catA := (a at:3) category.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1155
                        catB := (b at:3) category.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1156
                        catA = catB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1157
                            nmA := (a at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1158
                            nmB := (b at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1159
                            nmA = nmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1160
                                clsNmA := (a at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1161
                                clsNmB := (b at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1162
                                clsNmA = clsNmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1163
                                    nsNmA := (a at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1164
                                    nsNmB := (b at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1165
                                    nsNmA < nsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1166
                                ] ifFalse:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1167
                                    clsNmA < clsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1168
                                ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1169
                            ] ifFalse:[ nmA < nmB ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1170
                        ] ifFalse:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1171
                            catA < catB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1172
                        ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1173
                    ].
7610
3f630d7a4a1a sort by category
Claus Gittinger <cg@exept.de>
parents: 7502
diff changeset
  1174
            ] ifFalse:[
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1175
                entries 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1176
                    sort:[:a :b | 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1177
                        |nmA nmB clsNmA clsNmB nsNmA nsNmB|
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1178
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1179
                        nmA := (a at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1180
                        nmB := (b at:2) asSymbol selector.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1181
                        nmA = nmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1182
                            clsNmA := (a at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1183
                            clsNmB := (b at:1) name.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1184
                            clsNmA = clsNmB ifTrue:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1185
                                nsNmA := (a at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1186
                                nsNmB := (b at:3) nameSpaceName.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1187
                                nsNmA < nsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1188
                            ] ifFalse:[
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1189
                                clsNmA < clsNmB
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1190
                            ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1191
                        ] ifFalse:[ nmA < nmB ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1192
                    ].
7610
3f630d7a4a1a sort by category
Claus Gittinger <cg@exept.de>
parents: 7502
diff changeset
  1193
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1194
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1195
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1196
    methods := OrderedCollection new:(entries size).
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1197
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1198
    "/ first generate the new methodList, and see if it is different ...
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1199
    
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1200
    entries do:[:entry | 
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1201
        |sel mthd|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1202
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1203
        mthd := entry at:3.
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1204
        methods add:mthd.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1205
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1206
    false "methodList = methods" "does not care for changed icons" ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1207
        "/ same list
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1208
        newNameList := self browserNameList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1209
    ] ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1210
        newNameList := OrderedCollection new:(entries size).
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1211
        
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1212
        "/ multiple classes must add the className for some
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1213
        
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1214
        entries do:[:entry | 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1215
            |cls sel mthd s needClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1216
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1217
            cls := entry at:1.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1218
            sel := entry at:2.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1219
            mthd := entry at:3.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1220
            needClass := doShowClass.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1221
            
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
"/        needClass ifFalse:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1223
"/            needClass := (selectorBag occurrencesOf:sel) > 1
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
"/        ].
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1225
            (suppressInheritanceInfoNow not
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1226
            and:[ (Timestamp now deltaFrom:startTime) > 3 seconds ]) ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1227
                suppressInheritanceInfoNow := true.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1228
            ].
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1229
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
            s := self 
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1231
                    listEntryForMethod:mthd
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1232
                    selector:sel
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1233
                    class:cls
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1234
                    showClass:needClass
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1235
                    showCategory:doShowCategory
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1236
                    classFirst:doShowClassFirst
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1237
                    suppressInheritanceInfo:suppressInheritanceInfoNow.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1238
            
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1239
            newNameList add:s.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1240
        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1241
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1242
    self makeIndependent.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1243
    classes := newClasses.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1244
    self makeDependent.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1245
    methodList := methods.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1246
    methods size == 1 ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1247
        theMethod := methods first.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1248
        mclass := theMethod mclass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1249
        mclass isNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1250
            theMethod isWrapped ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1251
                theMethod := theMethod originalMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1252
                mclass := theMethod mclass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1253
            ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1254
        ].
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1255
        self methodLabelHolder value:(mclass isNil 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1256
                    ifTrue:[ ('???' , ' ' , '???') ]
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1257
                    ifFalse:[ (mclass name , ' ' , theMethod selector) ])
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1258
    ].
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1259
"/    anyMethodToWatch ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1260
"/        self startWatchProcess.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1261
"/    ] ifFalse:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1262
"/        self stopWatchProcess.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1263
"/    ].
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1264
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1265
    "/ remember these, in case of an incremental (single method only)
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1266
    "/ update in the future.
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1267
    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1268
    lastShowClass := doShowClass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1269
    lastShowClassFirst := doShowClassFirst.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1270
    lastShowCategory := doShowCategory.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
    ^ newNameList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1272
7610
3f630d7a4a1a sort by category
Claus Gittinger <cg@exept.de>
parents: 7502
diff changeset
  1273
    "Created: / 05-02-2000 / 22:43:40 / cg"
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1274
    "Modified: / 24-08-2010 / 20:34:09 / Jan Vrany <enter your email here>"
11639
ae2097b7ee12 changed:
Claus Gittinger <cg@exept.de>
parents: 11557
diff changeset
  1275
    "Modified: / 20-07-2012 / 20:00:58 / cg"
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1276
    "Modified (comment): / 17-09-2013 / 10:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1277
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1278
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1279
makeDependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
  1280
    environment addDependent:self.
7502
a6cf14a9d385 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7122
diff changeset
  1281
"/    ChangeSet addDependent:self.
a6cf14a9d385 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7122
diff changeset
  1282
a6cf14a9d385 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7122
diff changeset
  1283
    "Modified: / 10-11-2006 / 17:57:01 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1284
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1285
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1286
makeIndependent
13498
b8d845e42988 Added `environment` instance variable to Tools__NewSystemBrowser and
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13384
diff changeset
  1287
    environment removeDependent:self.
8218
01508d17559b dont forget to make independent
fm
parents: 8206
diff changeset
  1288
"/    ChangeSet removeDependent:self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1289
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1290
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1291
method:mthd includesModsOfClassVariable:variablesToHighLight
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1292
    ^ self method:mthd includesRefsToVariable:variablesToHighLight askParserWith:#modifiedClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1293
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1294
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1295
method:mthd includesModsOfInstanceVariable:variablesToHighLight
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1296
    ^ self method:mthd includesRefsToVariable:variablesToHighLight askParserWith:#modifiedInstVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1297
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1298
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1299
method:mthd includesRefsToClassVariable:variablesToHighLight
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1300
    ^ self method:mthd includesRefsToVariable:variablesToHighLight askParserWith:#usedClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1301
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1302
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1303
method:mthd includesRefsToInstanceVariable:variablesToHighLight
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1304
    ^ self method:mthd includesRefsToVariable:variablesToHighLight askParserWith:#usedInstVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1305
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1306
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1307
method:mthd includesRefsToVariable:variablesToHighLight askParserWith:querySelector
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1308
    |cls src parser usedVars anyVarNameAccessable|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1309
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1310
    cls := mthd mclass.
5885
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1311
    cls isNil ifTrue:[^ false].
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1312
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1313
    anyVarNameAccessable := cls allInstVarNames includesAny:variablesToHighLight.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1314
    anyVarNameAccessable ifFalse:[
5885
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1315
        anyVarNameAccessable := cls theNonMetaclass allClassVarNames includesAny:variablesToHighLight.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1316
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1317
    anyVarNameAccessable ifFalse:[
5885
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1318
        "/ no need to parse
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1319
        ^ false
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1320
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1321
13526
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1322
    "/ JV Following code is just very bad. It assumes that method is a Smalltalk method.
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1323
    "/ But it may not, it could be JavaScript method, Java method or whatever fancy language 
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1324
    "/ method. Should be actually delegated to the method itself, just as #messagesSend & co.
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1325
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1326
    "/ I'm not going to refactor now to keep the differences between jv-branch and CVS 
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1327
    "/ ss small as possible. This interface is bad anyway as method is parsed several times
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1328
    "/ to check different things. Once should be enough.
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1329
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1330
    "/ Hack:
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1331
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1332
    mthd programmingLanguage isSmalltalk ifFalse:[
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1333
        ^ [
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1334
            usedVars := mthd perform:querySelector.
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1335
            usedVars includesAny:variablesToHighLight
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1336
        ] on: Error do:[
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1337
            false
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1338
        ]
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1339
    ].
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1340
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1341
    src := mthd source.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1342
    src notNil ifTrue:[
5885
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1343
        "
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1344
         before doing a slow parse, quickly scan the
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1345
         methods source for the variables name ...
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1346
        "
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1347
        (variablesToHighLight contains:[:varName | (src findString:varName) ~~ 0]) ifTrue:[
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1348
            parser := Parser
13526
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1349
                            parseMethod:src
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1350
                            in:cls
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1351
                            ignoreErrors:true
5885
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1352
                            ignoreWarnings:true.
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1353
            (parser notNil and:[parser ~~ #Error]) ifTrue:[
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1354
                usedVars := parser perform:querySelector.
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1355
                (usedVars includesAny:variablesToHighLight)
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1356
                ifTrue:[
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1357
                    ^  true
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1358
                ]
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1359
            ]
26dee2c80ea9 care for unbound methods
Claus Gittinger <cg@exept.de>
parents: 5761
diff changeset
  1360
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1361
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1362
    ^ false
13526
a53e939bd20e Fixes required by Java class browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13498
diff changeset
  1363
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1364
    "Modified: / 30-08-2013 / 13:46:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1365
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1366
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1367
methodIsInheritedFromAbove:aMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1368
    |mClass|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1369
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1370
    mClass := aMethod mclass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1371
    (mClass notNil and:[mClass superclass notNil]) ifTrue:[
6789
6e87cc2011a7 Do not use obsolete method
Stefan Vogel <sv@exept.de>
parents: 6774
diff changeset
  1372
        ^ (mClass superclass whichClassIncludesSelector:aMethod selector) notNil.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1373
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1374
    ^ false
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1375
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1376
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1377
methodIsRedefinedBelow:aMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1378
    |mclass subClasses setOfRedefinedSelectors|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1379
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1380
    mclass := aMethod mclass.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1381
    mclass isNil ifTrue:[^ false].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1382
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1383
    "/ if possible, make use of info prepared by listOfMethodNames
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1384
    classAndSelectorsRedefinedBySubclassesOfClass notNil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1385
    ifTrue:[
9004
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1386
        setOfRedefinedSelectors := classAndSelectorsRedefinedBySubclassesOfClass at:mclass ifAbsent:nil.
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1387
        setOfRedefinedSelectors notNil ifTrue:[
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1388
            ^ setOfRedefinedSelectors includes:aMethod selector
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1389
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1390
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1391
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1392
    lastMethodClass == mclass ifTrue:[
9004
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1393
        subClasses := lastMethodClassesSubclasses
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1394
    ] ifFalse:[
9004
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1395
        subClasses := aMethod mclass allSubclasses.
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1396
        lastMethodClassesSubclasses := subClasses.
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1397
        lastMethodClass := mclass.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1398
    ].
9004
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1399
    ^ subClasses contains:[:cls | cls includesSelector:aMethod selector].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1400
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1401
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1402
redefinedOrInheritedIconFor:aMethod
5761
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1403
    |inherited redefined subclassResponsibility|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1404
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1405
    inherited := self methodIsInheritedFromAbove:aMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1406
    redefined := self methodIsRedefinedBelow:aMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1407
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1408
    inherited ifTrue:[
5761
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1409
        redefined ifTrue:[
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1410
            ^ self methodInheritedFromAboveAndRedefinedBelowIcon.
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1411
        ].
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1412
        ^ self methodInheritedFromAboveIcon.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1413
    ].
5761
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1414
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1415
    subclassResponsibility := aMethod sends:#subclassResponsibility.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1416
    redefined ifTrue:[
5761
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1417
        subclassResponsibility ifTrue:[
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1418
            ^ self methodIsSubclassResponsibilityAndRedefinedBelowIcon.
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1419
        ].
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1420
        ^ self methodRedefinedBelowIcon.
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1421
    ].
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1422
    subclassResponsibility ifTrue:[
b350e042dc9f Icons for subclassResponsibility and deprecated methods
Stefan Vogel <sv@exept.de>
parents: 5591
diff changeset
  1423
        ^ self methodIsSubclassResponsibilityIcon.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1424
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1425
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1426
    ^ self methodEmptyInheritedIcon
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1427
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1428
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1429
release
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1430
    super release.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1431
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1432
    filterClassVars removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1433
    selectedMethodNameIndices removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1434
    showMethodInheritance removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1435
    variableFilter removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1436
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1437
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1438
resourceIconForMethod:aMethod
6903
1fb966ff068c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6846
diff changeset
  1439
    ^ SystemBrowser resourceIconForMethod:aMethod
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1440
6903
1fb966ff068c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6846
diff changeset
  1441
    "Modified: / 17-08-2006 / 09:09:01 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1442
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1443
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1444
setOfAllSelectorsImplementedBelow:aClass
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1445
    |set|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1446
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1447
    set := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1448
    aClass allSubclassesDo:[:eachSubclass |
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1449
        set addAll:(eachSubclass methodDictionary keys).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1450
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1451
    ^ set
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1452
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1453
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1454
updateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1455
    |prevSelection newList newSelection newSelIdx reverseMap sameContents newListSize oldListSize
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1456
     prevClasses methodSet selectedMethodsHolder|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1457
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1458
    selectedMethodsHolder := self selectedMethods.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1459
    prevSelection := selectedMethodsHolder value ? #().
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1460
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1461
    prevClasses := classes isNil ifTrue:[ #() ] ifFalse:[ classes copy ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1462
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1463
    oldListSize := self browserNameList size.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1464
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1465
    self topApplication withWaitCursorDo:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1466
        newList := self listOfMethodNames.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1467
    ].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1468
    newListSize := newList size.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1469
    sameContents := self updateListFor:newList.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1470
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1471
    sameContents ifFalse:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1472
"/      self browserNameList value:newList.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1473
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1474
        (prevSelection size == 0 
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1475
        and:[selectedMethodsHolder value size ~~ 0]) ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1476
            "/ this happens during early startup time,
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1477
            "/ when the selection is already (pre-)set,
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1478
            "/ and the methodList is generated the first time
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1479
            "/ (i.e. when opened with preset selection
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1480
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1481
            "/ do not clobber the selection in this case.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1482
            prevSelection := selectedMethodsHolder value.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1483
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1484
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1485
        (methodList size == 0 or:[prevSelection size == 0]) ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1486
            newSelection := #()
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1487
        ] ifFalse:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1488
            methodSet := methodList.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1489
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1490
            "/ intersect is much faster with sets, if the number of items is large
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1491
            "/ however, only if its worth building the set ...
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1492
            (methodSet size + prevSelection size) > 35 ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1493
                methodSet := methodSet asIdentitySet.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1494
            ].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1495
            newSelection := methodSet intersect:prevSelection.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1496
        ].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1497
        newSelection size > 0 ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1498
            newSelection size > 100 ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1499
                "/ need selection indices - might be expensive if done straight forward...
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1500
                reverseMap := IdentityDictionary new.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1501
                methodList keysAndValuesDo:[:idx :mthd | reverseMap at:mthd put:idx].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1502
                newSelIdx := newSelection collect:[:mthd | reverseMap at:mthd].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1503
            ] ifFalse:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1504
                newSelIdx := newSelection collect:[:mthd | methodList identityIndexOf:mthd]
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1505
            ].
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1506
"/ self halt.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1507
            "/ force change (for dependents)
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1508
            newSelIdx ~= selectedMethodNameIndices value ifTrue:[
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
  1509
                self selectedMethodNameIndices value:newSelIdx.
7702
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1510
            ].
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1511
        ] ifFalse:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1512
            lastSelectedMethods := selectedMethodsHolder value.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1513
            lastSelectedMethods notNil ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1514
                lastSelectedMethods := lastSelectedMethods asOrderedCollection
7702
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1515
            ].
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1516
            selectedMethodNameIndices value size > 0 ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1517
                selectedMethodNameIndices value:#().
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1518
            ]
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1519
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1520
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1521
        newSelection ~= prevSelection ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1522
            self selectionChanged.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1523
        ]
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1524
    ] ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1525
        "/ same list - but classes might have changed
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1526
        "/ that is the case, if the class selection has been changed,
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1527
        "/ to another class which has the same categories.
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1528
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1529
        (prevClasses ~= (classes ? IdentitySet new)) ifTrue:[
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1530
            (newListSize > 0 or:[oldListSize > 0]) ifTrue:[
7702
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1531
                self selectionChanged.
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1532
            ]
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1533
        ]
12567
9a6d91db7d07 class: Tools::MethodList
Stefan Vogel <sv@exept.de>
parents: 12554
diff changeset
  1534
    ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1535
7702
2d1ef9372f1f avoid useless redraw
Claus Gittinger <cg@exept.de>
parents: 7610
diff changeset
  1536
    "Modified: / 05-03-2007 / 16:07:24 / cg"
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
  1537
    "Modified: / 24-02-2014 / 11:08:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1538
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1539
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1540
updateListEntryFor:aMethod
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1541
    "update my list for a single method.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1542
     (used when a single methods package, code or whatever changes, and a full udpate
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1543
      would be too slow)"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1544
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1545
    |s idx|
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1546
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1547
    s := self 
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1548
            listEntryForMethod:aMethod 
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1549
            selector:aMethod selector 
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1550
            class:aMethod mclass 
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1551
            showClass:lastShowClass 
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1552
            showCategory:lastShowCategory
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1553
            classFirst:lastShowClassFirst
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1554
            suppressInheritanceInfo:false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1555
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1556
    idx := methodList identityIndexOf:aMethod.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1557
    idx == 0 ifTrue:[
6268
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
  1558
        aMethod isWrapped ifTrue:[
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
  1559
            idx := methodList identityIndexOf:aMethod originalMethod.
10549
1f387878f9c6 changed: #updateListEntryFor:
Claus Gittinger <cg@exept.de>
parents: 10388
diff changeset
  1560
            idx == 0 ifTrue:[
1f387878f9c6 changed: #updateListEntryFor:
Claus Gittinger <cg@exept.de>
parents: 10388
diff changeset
  1561
                "/ aMethod (wrapped) has changed its status, but is not in the list.
1f387878f9c6 changed: #updateListEntryFor:
Claus Gittinger <cg@exept.de>
parents: 10388
diff changeset
  1562
                ^ self.
1f387878f9c6 changed: #updateListEntryFor:
Claus Gittinger <cg@exept.de>
parents: 10388
diff changeset
  1563
            ].
6268
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
  1564
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1565
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1566
    idx == 0 ifTrue:[
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1567
        "/ method was not previously shown; try to avoid a full update
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1568
        (self isMethodToBeShown:aMethod) ifTrue:[
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1569
            self invalidateList
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1570
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1571
    ] ifFalse:[
6268
df63cb5277cc metrics display
Claus Gittinger <cg@exept.de>
parents: 6261
diff changeset
  1572
        self browserNameList at:idx put:s.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1573
    ]
10549
1f387878f9c6 changed: #updateListEntryFor:
Claus Gittinger <cg@exept.de>
parents: 10388
diff changeset
  1574
10579
89bb79eaee8e added: #isMethodToBeShown:
Claus Gittinger <cg@exept.de>
parents: 10549
diff changeset
  1575
    "Modified: / 17-08-2011 / 15:05:02 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1576
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1577
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1578
!MethodList methodsFor:'private-presentation'!
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1579
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1580
colorForCoverageInformationOfMethod:aMethod
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1581
    aMethod isInstrumented ifFalse:[^ nil].
9448
f9258f99d465 changed: #emphasisForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9438
diff changeset
  1582
    aMethod category = 'documentation' ifTrue:[^ nil].
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1583
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1584
    aMethod hasBeenCalled ifTrue:[
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1585
        aMethod haveAllBlocksBeenExecuted ifTrue:[
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1586
            ^ UserPreferences current colorForInstrumentedFullyCoveredCode
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1587
        ].
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1588
        ^ UserPreferences current colorForInstrumentedPartiallyCoveredCode
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1589
    ].
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1590
    ^ UserPreferences current colorForInstrumentedNeverCalledCode
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1591
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1592
    "Created: / 30-04-2010 / 11:53:38 / cg"
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1593
!
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1594
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1595
listEntryForMethod:aMethod selector:selector class:cls showClass:showClass showCategory:showCategory classFirst:showClassFirst
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1596
    "answer a method list entry 
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1597
     gimmics: 
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1598
        adding a little image to breakPointed methods,
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1599
        inheritance indicators,
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1600
        highlight accessors of variable"
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1601
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1602
    ^ self
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1603
        listEntryForMethod:aMethod 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1604
        selector:selector 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1605
        class:cls 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1606
        showClass:showClass showCategory:showCategory
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1607
        classFirst:showClassFirst
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1608
        suppressInheritanceInfo:false
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1609
!
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1610
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1611
listEntryForMethod:aMethod selector:selector class:cls showClass:showClass showCategory:showCategory classFirst:showClassFirst suppressInheritanceInfo:suppressInheritanceInfo
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1612
    "answer a method list entry 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1613
     gimmics: 
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1614
        adding a little image to breakPointed methods,
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1615
        inheritance indicators,
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1616
        highlight accessors of variable"
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1617
12036
cfe7abc0d2c8 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 11914
diff changeset
  1618
    |s icn variablesToHighlight classVarsToHighLight 
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1619
     doHighLight doHighLightRed clr emp cat l redefIcon 
12052
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1620
     metrics complexity complexityString complexityIcon mark lastResultOrNil|
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1621
9038
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1622
    aMethod isNil ifTrue:[
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1623
        "/ a non-existing (pseudo) method (such as required protocol)
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1624
        ^ selector colorizeAllWith:Color red.
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1625
    ].
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1626
12036
cfe7abc0d2c8 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 11914
diff changeset
  1627
    showClassFirst ifTrue:[
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1628
        s := aMethod printStringForBrowserWithSelector:selector allBold inClass:cls.
12036
cfe7abc0d2c8 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 11914
diff changeset
  1629
        s := cls nameInBrowser , ' ' , s
8638
2283abcb54ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8637
diff changeset
  1630
    ] ifFalse:[
2283abcb54ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8637
diff changeset
  1631
        s := aMethod printStringForBrowserWithSelector:selector inClass:cls.
2283abcb54ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8637
diff changeset
  1632
    ].
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1633
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1634
    "/
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1635
    "/ wrap icons (i.e. break- or trace points on the method)
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1636
    "/ have higher prio ...
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1637
    "/
9038
9b56d0b8c38e required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 9004
diff changeset
  1638
    (aMethod notNil and:[aMethod isWrapped]) ifTrue:[
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1639
        (s endsWith:' !!') ifTrue:[
12701
2fb888a69712 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12673
diff changeset
  1640
            s := s copyButLast:2
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1641
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1642
        aMethod isBreakpointed ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1643
            icn := self stopIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1644
        ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1645
            aMethod isTimed ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1646
                icn := self timeIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1647
            ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1648
                icn := self traceIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1649
            ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1650
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1651
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1652
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1653
    "/
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1654
    "/ breakpoint icons (i.e. break- or trace points inside)
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1655
    "/
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1656
    icn isNil ifTrue:[
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1657
        (aMethod notNil and:[aMethod isMethodWithBreakpoints]) ifTrue:[
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1658
            icn := self breakPointedIcon
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1659
        ].
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1660
    ].
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1661
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1662
    icn isNil ifTrue:[
8198
f4b0d497d1e6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8197
diff changeset
  1663
        self showImageResourceMethodsImages value ~~ false ifTrue:[
9252
ee7770f155ca changed: #listEntryForMethod:selector:class:showClass:showCategory:classFirst:
Claus Gittinger <cg@exept.de>
parents: 9038
diff changeset
  1664
            (aMethod hasImageResource) ifTrue:[
8474
301be082b20d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
  1665
                aMethod mclass isMeta ifTrue:[
301be082b20d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
  1666
                    icn := aMethod valueWithReceiver:nil arguments:nil .
8197
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1667
                ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1668
            ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1669
        ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1670
    ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1671
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1672
    icn isNil ifTrue:[
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1673
        showMethodTypeIcon value ~~ false ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1674
            icn := self resourceIconForMethod:aMethod.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1675
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1676
        icn isNil ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1677
            aMethod isProtected ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1678
                icn := self protectedMethodIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1679
            ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1680
                aMethod isPrivate ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1681
                    icn := self privateMethodIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1682
                ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1683
                    (aMethod isIgnored) ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1684
                        icn := self ignoredMethodIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1685
                    ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1686
                        (aMethod isJavaMethod and:[aMethod isAbstract]) ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1687
                            icn := self abstractMethodIcon
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1688
                        ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1689
                    ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1690
                ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1691
            ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1692
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1693
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1694
    icn isNil ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1695
        (selector startsWith:'test') ifTrue:[
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1696
            ((cls isSubclassOf:TestCase) 
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1697
            and:[cls isAbstract not]) ifTrue:[
10861
253c00821956 changed:
vrany
parents: 10674
diff changeset
  1698
                "JV@2011-11-17: Show thumbs even if not all test were run"
12052
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1699
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1700
                lastResultOrNil := cls rememberedOutcomeFor:selector.
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1701
                lastResultOrNil notNil ifTrue:[
12632
1c4918897dab class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12567
diff changeset
  1702
                    |state|
1c4918897dab class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12567
diff changeset
  1703
1c4918897dab class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12567
diff changeset
  1704
                    state := lastResultOrNil result.
1c4918897dab class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12567
diff changeset
  1705
                    (state == TestResult statePass) ifTrue:[
12730
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1706
                        icn := ToolbarIconLibrary testCasePassedIcon
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1707
                    ] ifFalse:[
12730
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1708
                        (state == TestResult stateError) ifTrue:[
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1709
                            icn := ToolbarIconLibrary testCaseErrorIcon
12632
1c4918897dab class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12567
diff changeset
  1710
                        ] ifFalse:[
12730
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1711
                            (state == TestResult stateFail) ifTrue:[
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1712
                                icn := ToolbarIconLibrary testCaseFailedIcon
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1713
                            ] ifFalse:[
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1714
                                icn := ToolbarIconLibrary testCaseSkippedIcon
4c1ad9af9d2f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12701
diff changeset
  1715
                            ] 
12052
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1716
                        ] 
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1717
                    ]
58463261ce7f class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12048
diff changeset
  1718
                ].
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1719
            ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1720
        ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1721
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1722
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1723
    showClass ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1724
        showClassFirst ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1725
            s := s , ' [' , cls name allBold , ']'.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1726
        ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1727
    ].
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1728
    (showCategory and:[aMethod mclass supportsMethodCategories]) ifTrue:[
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1729
        cat := aMethod category.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1730
        cat notNil ifTrue:[
11863
f23f5b920b3e changed:
Claus Gittinger <cg@exept.de>
parents: 11851
diff changeset
  1731
            s := s , ' {' , (cat "asText allItalic" colorizeAllWith:Color grey), '}'
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1732
        ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1733
    ].
7502
a6cf14a9d385 preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7122
diff changeset
  1734
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1735
    self showCoverageInformation value ifTrue:[
9451
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1736
        clr := self colorForCoverageInformationOfMethod:aMethod.
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1737
        clr notNil ifTrue:[
79d033f585b9 added: #colorForCoverageInformationOfMethod:
Claus Gittinger <cg@exept.de>
parents: 9448
diff changeset
  1738
            s := self colorize:s with:(#color->clr).
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1739
            "/ aMethod isInstrumented ifTrue:[
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1740
            "/     icn := self instrumentationIcon
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1741
            "/ ].
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1742
        ].
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1743
    ] ifFalse:[
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1744
        (ChangeSet current includesChangeForClass:cls selector:selector) ifTrue:[
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1745
            mark := self class markForBeingInChangeList.
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1746
            "/ mark := self colorizeForChangedCode:mark.
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1747
            s := s , mark.
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1748
            "/ cg: I dont know why this was disabled - it is req'd to
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1749
            "/ see changed methods in a method list (implementors...)
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1750
            s := self colorizeForChangedCode:s.
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1751
        ].
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1752
9430
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1753
        (SmallTeam notNil and:[SmallTeam includesChangeForClass:cls selector:selector]) ifTrue:[
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1754
            s := (self colorizeForChangedCodeInSmallTeam:'!! '),s
3b61a075fd04 coverage-info colorization
Claus Gittinger <cg@exept.de>
parents: 9427
diff changeset
  1755
        ].
6841
6d72f92ed6cd mark changed methods with a '*'
Claus Gittinger <cg@exept.de>
parents: 6789
diff changeset
  1756
    ].
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1757
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1758
    variablesToHighlight := variableFilter value.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1759
    variablesToHighlight size > 0 ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1760
        classVarsToHighLight := filterClassVars value.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1761
        classVarsToHighLight ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1762
            doHighLight := self method:aMethod includesRefsToClassVariable:variablesToHighlight.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1763
            doHighLight ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1764
                doHighLightRed := self method:aMethod includesModsOfClassVariable:variablesToHighlight.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1765
            ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1766
        ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1767
            doHighLight := self method:aMethod includesRefsToInstanceVariable:variablesToHighlight.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1768
            doHighLight ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1769
                doHighLightRed := self method:aMethod includesModsOfInstanceVariable:variablesToHighlight
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1770
            ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1771
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1772
        doHighLight ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1773
            s := s allBold.
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1774
            doHighLightRed ifTrue:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1775
                emp := (UserPreferences current emphasisForWrittenVariable)
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1776
            ] ifFalse:[
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1777
                emp := (UserPreferences current emphasisForReadVariable)
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1778
            ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1779
            s := s emphasisAllAdd:emp
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1780
        ]
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1781
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1782
6694
a746318dd357 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6663
diff changeset
  1783
    (showMethodComplexity value == true 
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1784
    and:[ OOM::MethodMetrics notNil ]) ifTrue:[
8197
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1785
        icn isNil ifTrue:[
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1786
                metrics := OOM::MethodMetrics forMethod:aMethod.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1787
                complexity := metrics complexity ? 0.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1788
                complexityIcon := OOM::MethodMetrics iconForComplexity:complexity.
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1789
8197
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1790
                ShowComplexityValue == true ifTrue:[
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1791
                    complexityString := '{' , complexity printString , '}'.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1792
                    s := complexityString , ' ' , s.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1793
                ].
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1794
                "/ icn := icn ? complexityIcon.
3b1c5bd94fdd preps for showResourceImages
Claus Gittinger <cg@exept.de>
parents: 7994
diff changeset
  1795
                s := LabelAndIcon icon:complexityIcon string:s.
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1796
        ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1797
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1798
12047
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1799
    (showMethodInheritance value ? true) ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1800
        suppressInheritanceInfo ifTrue:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1801
            redefIcon := self methodEmptyInheritedIcon.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1802
        ] ifFalse:[
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1803
            redefIcon := self redefinedOrInheritedIconFor:aMethod.
1e30b680fe27 suppress inheritance info after 3seconds
Claus Gittinger <cg@exept.de>
parents: 12036
diff changeset
  1804
        ].
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1805
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1806
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1807
    (icn notNil or:[redefIcon notNil]) ifTrue:[
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1808
        "/eXept version
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1809
        "/l := LabelAndIcon icon:redefIcon string:s.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1810
        "/l image:icn.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1811
        "/JV:
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1812
        l := LabelAndIcon icon:icn string:s.
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1813
        l image:redefIcon.
11385
099b8067afcb changed: #listEntryForMethod:selector:class:showClass:showCategory:classFirst:
Claus Gittinger <cg@exept.de>
parents: 10861
diff changeset
  1814
        icn isNil ifTrue:[l offset: 13].
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1815
        l gap:1.
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1816
        ^ l
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1817
    ].
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1818
    ^ s
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1819
6841
6d72f92ed6cd mark changed methods with a '*'
Claus Gittinger <cg@exept.de>
parents: 6789
diff changeset
  1820
    "Created: / 22-10-1996 / 19:51:00 / cg"
10257
bdc20c20c46c Merged with JV's branch
vrany
parents: 10228
diff changeset
  1821
    "Modified: / 15-08-2009 / 13:13:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
11385
099b8067afcb changed: #listEntryForMethod:selector:class:showClass:showCategory:classFirst:
Claus Gittinger <cg@exept.de>
parents: 10861
diff changeset
  1822
    "Modified: / 07-03-2012 / 19:06:09 / cg"
13803
19ffa07a5538 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13731
diff changeset
  1823
    "Modified: / 16-10-2013 / 01:10:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6271
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1824
! !
e0e4d9873bc4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6268
diff changeset
  1825
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1826
!MethodList methodsFor:'private-watching'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1827
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1828
startWatchProcess
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1829
    updateProcess notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1830
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1831
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1832
    updateProcess := [
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1833
                        [true] whileTrue:[
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1834
                            Delay waitForSeconds:1.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1835
                            self enqueueDelayedUpdateList
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1836
                        ]
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1837
                     ] fork.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1838
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1839
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1840
stopWatchProcess
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1841
    |p|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1842
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1843
    (p := updateProcess) notNil ifTrue:[
10388
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1844
        updateProcess := nil.
993bab7e261d changed:
Claus Gittinger <cg@exept.de>
parents: 10376
diff changeset
  1845
        p terminate
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1846
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1847
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1848
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1849
!MethodList methodsFor:'setup'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1850
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1851
postBuildWith:aBuilder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1852
    |methodListView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1853
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1854
    super postBuildWith:aBuilder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1855
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1856
    methodListView := aBuilder componentAt:'List'.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1857
    methodListView notNil ifTrue:[
6277
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1858
        methodListView allowDrag:true.
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1859
        methodListView dragObjectConverter:[:obj | 
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1860
                                            |nm method idx|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1861
6277
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1862
                                            nm := obj theObject asString string string.
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1863
                                            idx := browserNameList value findFirst:[:item | item string string = nm].
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1864
                                            method := methodList value at:idx.
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1865
                                            DropObject newMethod:method.
12cb8061330f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1866
                                         ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1867
    ]
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1868
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1869
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1870
!MethodList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1871
10363
df9241270a1b changed:
Claus Gittinger <cg@exept.de>
parents: 10357
diff changeset
  1872
version
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
  1873
    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodList.st,v 1.96 2014-02-25 10:41:22 vrany Exp $'
10363
df9241270a1b changed:
Claus Gittinger <cg@exept.de>
parents: 10357
diff changeset
  1874
!
df9241270a1b changed:
Claus Gittinger <cg@exept.de>
parents: 10357
diff changeset
  1875
9004
fbd6a4c325f6 changed: #methodIsRedefinedBelow:
Claus Gittinger <cg@exept.de>
parents: 8644
diff changeset
  1876
version_CVS
14024
877fd52ae84b Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13803
diff changeset
  1877
    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodList.st,v 1.96 2014-02-25 10:41:22 vrany Exp $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1878
! !
12505
4aa49cb74a22 class: Tools::MethodList
Claus Gittinger <cg@exept.de>
parents: 12091
diff changeset
  1879