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