Tools_MethodCategoryList.st
author Claus Gittinger <cg@exept.de>
Sat, 16 Mar 2013 10:49:32 +0100
changeset 12472 bb57c2a55f36
parent 12471 cf02312d4d7a
child 12614 14c02141f489
permissions -rw-r--r--
class: Tools::MethodCategoryList changed: #makeGenerator caching lastGeneratedProtocols prevented the *all* entry from updating the methodList when the embeddedTestRunner was shown (it generated the list already, setting the lastProtocols as side effect, so no update was done by the methodCategoryList)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2000 by eXept Software AG
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
     3
              All Rights Reserved
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
5592
d9730a8d7c52 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    12
"{ Package: 'stx:libtool' }"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
BrowserList subclass:#MethodCategoryList
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    17
	instanceVariableNames:'variableFilter filterClassVars lastSelectedProtocols classes
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    18
		leafClasses protocolList rawProtocolList selectedProtocolIndices
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    19
		lastGeneratedProtocols packageFilterOnInput
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    20
		methodVisibilityHolder noAllItem noPseudoItems
10231
7668da04e202 coverageInfo aspect lifted
Claus Gittinger <cg@exept.de>
parents: 10185
diff changeset
    21
		showPseudoProtocols'
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    22
	classVariableNames:'AdditionalEmptyCategoriesPerClassName MethodInfoCache
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    23
		MethodInfoCacheAccessLock'
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    24
	poolDictionaries:''
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    25
	category:'Interface-Browsers-New'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
    28
Object subclass:#CachedMethodInfo
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    29
	instanceVariableNames:'flags'
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    30
	classVariableNames:'FlagObsolete FlagSendsSuper FlagIsUncommented
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    31
		FlagIsDocumentationMethod FlagIsLongMethod FlagIsExtension
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
    32
		FlagIsRedefine FlagIsRedefined FlagIsOverride
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
    33
		FlagIsSubclassResponsibility FlagIsTest FlagIsAnnotated'
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    34
	poolDictionaries:''
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    35
	privateIn:MethodCategoryList
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
    36
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
    37
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
    38
Method variableSubclass:#MissingMethod
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    39
	instanceVariableNames:'selector'
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    40
	classVariableNames:''
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    41
	poolDictionaries:''
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
    42
	privateIn:MethodCategoryList
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
    43
!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
    44
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!MethodCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
copyright
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
 COPYRIGHT (c) 2000 by eXept Software AG
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
    50
              All Rights Reserved
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
 This software is furnished under a license and may be used
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
 only in accordance with the terms of that license and with the
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
 inclusion of the above copyright notice.   This software may not
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
 be provided or otherwise made available to, or used by, any
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
 other person.  No title to or ownership of the software is
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
 hereby transferred.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
"
11875
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    59
!
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    60
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    61
documentation
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    62
"
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    63
    I implement the method category (= protocol) list in the new system browser
276c565756ed added: #documentation
Claus Gittinger <cg@exept.de>
parents: 11865
diff changeset
    64
"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    67
!MethodCategoryList class methodsFor:'initialization'!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    68
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    69
flushMethodInfo
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    70
    MethodInfoCache := Dictionary new.
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
    71
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
    72
    "
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
    73
     self flushMethodInfo
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
    74
    "
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    75
!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    76
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    77
initialize
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    78
    MethodInfoCache := Dictionary new.
12400
32a9d286d90f add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 12049
diff changeset
    79
    MethodInfoCacheAccessLock := RecursionLock new name:'MethodInfoCacheAccessLock'.
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    80
! !
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
    81
10551
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    82
!MethodCategoryList class methodsFor:'cleanup'!
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    83
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    84
lowSpaceCleanup
10552
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
    85
    self flushMethodInfo
10551
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    86
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    87
    "Created: / 08-08-2011 / 19:15:25 / cg"
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    88
! !
411e90fd6ee6 added: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10548
diff changeset
    89
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!MethodCategoryList class methodsFor:'interface specs'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
singleProtocolWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
     UIPainter new openOnClass:MethodCategoryList andSelector:#singleProtocolWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
     MethodCategoryList new openInterface:#singleProtocolWindowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
     #(#FullSpec
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   108
        #name: #singleProtocolWindowSpec
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   109
        #window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
       #(#WindowSpec
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   111
          #label: 'ProtocolList'
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   112
          #name: 'ProtocolList'
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   113
          #min: #(#Point 0 0)
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   114
          #max: #(#Point 1024 721)
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   115
          #bounds: #(#Rectangle 12 22 312 322)
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   116
        )
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   117
        #component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
       #(#SpecCollection
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   119
          #collection: #(
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   120
           #(#LabelSpec
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   121
              #label: 'ProtocolName'
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   122
              #name: 'ProtocolLabel'
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   123
              #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 25 0)
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   124
              #translateLabel: true
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   125
              #labelChannel: #protocolLabelHolder
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   126
              #menu: #menuHolder
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   127
            )
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   128
           )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
         
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   130
        )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "Do not manually edit this!! If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
     UIPainter new openOnClass:MethodCategoryList andSelector:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
     MethodCategoryList new openInterface:#windowSpec
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
     MethodCategoryList open
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    "
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    <resource: #canvas>
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    ^ 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
     #(#FullSpec
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   151
        #name: #windowSpec
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   152
        #window: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
       #(#WindowSpec
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   154
          #label: 'ProtocolList'
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   155
          #name: 'ProtocolList'
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   156
          #min: #(#Point 0 0)
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   157
          #bounds: #(#Rectangle 16 46 316 346)
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   158
        )
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   159
        #component: 
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
       #(#SpecCollection
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   161
          #collection: #(
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   162
           #(#SequenceViewSpec
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   163
              #name: 'List'
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   164
              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   165
              #tabable: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   166
              #model: #selectedProtocolIndices
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   167
              #menu: #menuHolder
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   168
              #hasHorizontalScrollBar: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   169
              #hasVerticalScrollBar: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   170
              #miniScrollerHorizontal: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   171
              #isMultiSelect: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   172
              #valueChangeSelector: #selectionChangedByClick
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   173
              #useIndex: true
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   174
              #sequenceList: #protocolList
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   175
              #doubleClickChannel: #doubleClickChannel
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   176
              #properties: 
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   177
             #(#PropertyListDictionary
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   178
                #dragArgument: nil
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   179
                #dropArgument: nil
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   180
                #canDropSelector: #canDropContext:
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   181
                #dropSelector: #doDropContext:
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   182
              )
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   183
            )
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   184
           )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
         
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   186
        )
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
      )
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
!MethodCategoryList class methodsFor:'plugIn spec'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
aspectSelectors
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    "This resource specification was automatically generated
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
     by the UIPainter of ST/X."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    "Do not manually edit this. If it is corrupted,
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
     the UIPainter may not be able to read the specification."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "Return a description of exported aspects;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
     these can be connected to aspects of an embedding application
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
     (if this app is embedded in a subCanvas)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    ^ #(
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   204
        #(#doubleClickChannel #action )
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   205
        #filterClassVars
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   206
        #forceGeneratorTrigger
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   207
        #immediateUpdate
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   208
        #inGeneratorHolder
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   209
        #menuHolder
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   210
        #noAllItem
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   211
        #showPseudoProtocols
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   212
        #outGeneratorHolder
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   213
        #packageFilter
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   214
        #packageFilterOnInput
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   215
        #selectedProtocols
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   216
        #selectionChangeCondition
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   217
        #updateTrigger
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   218
        #variableFilter
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   219
        #methodVisibilityHolder
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   220
        #showCoverageInformation
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
      ).
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   222
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   223
    "Modified: / 27-04-2010 / 16:40:39 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
!MethodCategoryList methodsFor:'aspects'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
browserNameList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    ^ self protocolList 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
defaultSlaveModeValue
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    ^ false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
filterClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    filterClassVars isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   238
        filterClassVars := false asValue.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   239
        filterClassVars addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    ^  filterClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
filterClassVars:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    filterClassVars notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   249
        filterClassVars removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    filterClassVars := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    filterClassVars notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   253
        filterClassVars addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
methodVisibilityHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    methodVisibilityHolder isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   262
        methodVisibilityHolder := false asValue.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   263
        methodVisibilityHolder addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    ^  methodVisibilityHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
methodVisibilityHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    methodVisibilityHolder notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   270
        methodVisibilityHolder removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
    methodVisibilityHolder := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    methodVisibilityHolder notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   274
        methodVisibilityHolder addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
noAllItem
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
    noAllItem isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   283
        noAllItem := false asValue.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   284
        noAllItem addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
    ^  noAllItem
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
noAllItem:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    noAllItem notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   291
        noAllItem removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
    noAllItem := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    noAllItem notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   295
        noAllItem addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
packageFilterOnInput
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    packageFilterOnInput isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   301
        packageFilterOnInput := nil asValue.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   302
        packageFilterOnInput addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    ^  packageFilterOnInput
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
packageFilterOnInput:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    |prevFilter|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
    prevFilter := packageFilterOnInput value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    packageFilterOnInput notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   312
        packageFilterOnInput removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
    packageFilterOnInput := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
    packageFilterOnInput notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   316
        packageFilterOnInput addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
    prevFilter ~= packageFilterOnInput value ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   319
        self enqueueDelayedUpdateList
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
protocolLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    ^ self pseudoListLabelHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
protocolList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
    protocolList isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   329
        protocolList := List new. "/ ValueHolder new
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
    ^ protocolList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
rawProtocolList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
    rawProtocolList isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   339
        rawProtocolList := List new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
    ^ rawProtocolList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
selectedProtocolIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    selectedProtocolIndices isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   346
        selectedProtocolIndices := ValueHolder new.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   347
        selectedProtocolIndices addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
    ^ selectedProtocolIndices.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
selectedProtocols
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
    ^ self selectionHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
selectedProtocols:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
    ^ self selectionHolder:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   360
showPseudoProtocols
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   361
    showPseudoProtocols isNil ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   362
        showPseudoProtocols := true asValue.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   363
        showPseudoProtocols addDependent:self
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   364
    ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   365
    ^  showPseudoProtocols
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   366
!
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   367
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   368
showPseudoProtocols:aValueHolder
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   369
    showPseudoProtocols notNil ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   370
        showPseudoProtocols removeDependent:self
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   371
    ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   372
    showPseudoProtocols := aValueHolder.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   373
    showPseudoProtocols notNil ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   374
        showPseudoProtocols addDependent:self
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   375
    ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   376
!
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   377
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
    variableFilter isNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   380
        variableFilter := false asValue.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   381
        variableFilter addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    ^  variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
variableFilter:aValueHolder
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
    variableFilter notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   391
        variableFilter removeDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
    variableFilter := aValueHolder.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
    variableFilter notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   395
        variableFilter addDependent:self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
    "Modified: / 31.1.2000 / 00:56:31 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
!MethodCategoryList methodsFor:'change & update'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
classDefinitionChanged:aClass
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
    |refetch anyChange|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
    anyChange := false.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
    refetch := [:oldClass | 
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   409
                    |nm cls newClass|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   411
                    nm := oldClass theNonMetaclass name.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   412
                    oldClass isMeta ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   413
                        newClass := Smalltalk at:nm.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   414
                        newClass isNil ifTrue:[
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   415
                            "/ Transcript showCR:'oops - browser lost class ' , nm.
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   416
                            newClass := oldClass
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   417
                        ] ifFalse:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   418
                            newClass := newClass theMetaclass
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   419
                        ]
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   420
                    ] ifFalse:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   421
                        newClass := Smalltalk at:nm
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   422
                    ].
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   423
                    newClass ~~ oldClass ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   424
                        anyChange := true.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   425
                    ].
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   426
                    newClass
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   427
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
    classes := classes collect:refetch.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
    leafClasses := leafClasses collect:refetch.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
    anyChange ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   432
        self updateOutputGenerator
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
    ].
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   434
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   435
    "Modified: / 06-07-2011 / 11:44:13 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    |sel oldMethod newMethod mthd selectedCategories selectedProtocolsHolder oldProtocol newProtocol
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
     rawProtocolListHolder rawProtocolList oldSelectedProtocols newSelectedProtocols newIndices idx cls listView|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    selectedProtocolsHolder := self selectedProtocols.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
    rawProtocolListHolder := self rawProtocolList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    changedObject == Smalltalk ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   446
        classes notNil ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   447
            something == #methodCategory ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   448
                cls := aParameter at:1.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   449
                (cls notNil and:[classes includesIdentical:cls]) ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   450
                    mthd := aParameter at:2.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   451
                    newProtocol := mthd category.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   452
                    oldProtocol := aParameter at:3.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   454
                    listValid == true ifTrue:[ self invalidateList ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   456
                    selectedCategories := selectedProtocolsHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   457
                    selectedCategories size > 0 ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   458
                        selectedCategories := selectedCategories collect:[:each | each ifNil:[self class nameListEntryForNILCategory]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   459
                        selectedCategories := selectedCategories collect:[:each | each string].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   461
                        ((selectedCategories includes:oldProtocol)
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   462
                        or:[ (selectedCategories includes:newProtocol)
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   463
                        or:[ selectedCategories includes:(self class nameListEntryForALL) ]])
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   464
                        ifTrue:[
10720
82b4939aafc5 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10712
diff changeset
   465
                            self enqueueDelayedUpdateOutputGenerator "/ updateOutputGenerator.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   466
                        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   467
                    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   469
                ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   470
                ^ self
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   471
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   473
            something == #methodInClass ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   474
                "/ a method has been added/removed/changed
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   475
                cls := aParameter at:1.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   476
                (classes includesIdentical:cls) ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   477
                    sel := aParameter at:2.
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   478
                    self flushMethodInfoForClassNamed:cls name selector:sel.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   479
                    oldMethod := aParameter at:3.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   480
                    newMethod := cls compiledMethodAt:sel.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   481
                    oldMethod notNil ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   482
                        variableFilter value size > 0 ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   483
                            "/ sigh - must invalidate
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   484
                            listValid == true ifTrue:[ self invalidateList ].
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   485
                        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   486
                        ^ self.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   487
                    ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   488
                    "/ method was added - update the methodList
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   489
                    "/ Q: is this needed (methodCategoryList should send me a new inGenerator)
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   490
                    listValid == true ifTrue:[ self invalidateList ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   492
                    "/ if its category is selected, updateOutputGenerator
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   493
                    selectedCategories := selectedProtocolsHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   494
                    selectedCategories size > 0 ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   495
                        selectedCategories := selectedCategories collect:[:each | each ifNil:[self class nameListEntryForNILCategory]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   496
                        selectedCategories := selectedCategories collect:[:each | each string].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   498
                        ((oldMethod notNil and:[selectedCategories includes:(oldMethod category)])
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   499
                        or:[ (newMethod notNil and:[selectedCategories includes:(newMethod category)])])
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   500
                        ifTrue:[
10720
82b4939aafc5 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10712
diff changeset
   501
                            self enqueueDelayedUpdateOutputGenerator "/ updateOutputGenerator.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   502
                        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   503
                    ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   504
                ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   505
                ^ self.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   506
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   508
            something == #methodInClassRemoved ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   509
                cls := aParameter at:1.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   510
                (classes includesIdentical:cls) ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   511
                    sel := aParameter at:2.
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   512
                    self flushMethodInfoForClassNamed:cls name selector:sel.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   513
                    "/ method was removed - update the list and output generator
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   514
                    self invalidateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   515
                    "/ self updateOutputGenerator.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   516
                    self slaveMode value == true ifFalse:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   517
                        self enqueueDelayedUpdateOutputGenerator.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   518
                    ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   519
                ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   520
                ^ self.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   521
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   523
            (something == #classOrganization
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   524
            or:[ something == #methodCategoryAdded
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   525
            or:[ something == #methodCategoryRemoved
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   526
            or:[ something == #methodCategoriesRemoved
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   527
            or:[ something == #methodCategoryRenamed ]]]]) ifTrue:[
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
   528
                cls := (something == #classOrganization) ifTrue:aParameter ifFalse:[aParameter first].
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   529
                (classes includesIdentical:cls) ifTrue:[
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   530
                    listValid == true ifTrue:[ self invalidateList ].
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   531
                ] ifFalse:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   532
                    (classes contains:[:aClass | aClass name = cls name]) ifTrue:[
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   533
                        listValid == true ifTrue:[ self invalidateList ].
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   534
                        "/ self error:'obsolete class: should not happen'.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   535
                    ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   536
                ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   537
                ^ self.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   538
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   540
            something == #projectOrganization ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   541
                aParameter notNil ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   542
                    cls := aParameter at:1.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   543
                    cls notNil ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   544
                        ((classes includes:cls theMetaclass)
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   545
                        or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   546
                            self invalidateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   547
                            self slaveMode value == true ifFalse:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   548
                                self enqueueDelayedUpdateOutputGenerator.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   549
                            ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   550
                        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   551
                    ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   552
                ] ifFalse:[
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   553
                    listValid == true ifTrue:[ self invalidateList ].
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   554
                ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   555
                ^ self
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   556
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   558
            (something == #methodCoverageInformation) ifTrue:[
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   559
                "/ already checked if it is one of my classes
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   560
                listValid == true ifTrue:[ self invalidateList ].
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   561
                ^ self
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   562
            ].
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   563
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   564
            (something == #classDefinition or:[something == #classVariables])
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   565
            ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   566
                self classDefinitionChanged:aParameter.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   567
                ^ self
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   568
            ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   570
            "/ everything else is ignored    
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   571
            "/ self halt.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   572
        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   573
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
    changedObject == self selectedProtocolIndices ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   577
        oldSelectedProtocols := selectedProtocolsHolder value ? #().
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   578
        oldSelectedProtocols := oldSelectedProtocols collect:[:each | each ifNil:[self class nameListEntryForNILCategory]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   579
        oldSelectedProtocols := oldSelectedProtocols collect:[:each | each string].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   580
        newSelectedProtocols := self getSelectedProtocolsFromIndices.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   581
        oldSelectedProtocols ~= newSelectedProtocols ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   582
            selectedProtocolsHolder value:newSelectedProtocols.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   583
        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   584
        newSelectedProtocols size > 1 ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   585
            (newSelectedProtocols includes:(self class nameListEntryForALL)) ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   586
                rawProtocolList := rawProtocolListHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   587
                idx := rawProtocolList indexOf: (newSelectedProtocols copy remove:(self class nameListEntryForALL); yourself) first.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   588
                idx ~~ 0 ifTrue:[
8742
b70571855d48 cleanup
Claus Gittinger <cg@exept.de>
parents: 8735
diff changeset
   589
                    (listView := self componentAt:#List) notNil ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   590
                        listView makeLineVisible:idx.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   591
                    ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   592
                ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   593
            ]
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   594
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   595
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   596
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   597
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
    changedObject == selectedProtocolsHolder ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   600
        rawProtocolList := rawProtocolListHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   601
        rawProtocolList size == 0 ifTrue:[
10712
da12d4dac8b9 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10687
diff changeset
   602
            lastGeneratedProtocols := nil.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   603
            self updateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   604
            rawProtocolList := rawProtocolListHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   605
        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   606
        rawProtocolList notNil ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   607
            selectedCategories := selectedProtocolsHolder value ? #().
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   608
            selectedCategories := selectedCategories collect:[:each | each ifNil:[self class nameListEntryForNILCategory]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   609
            newIndices := selectedCategories 
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   610
                            collect:[:each | rawProtocolList findFirst:[:p | p string = each string]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   611
            newIndices := newIndices select:[:each | each ~~ 0].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   612
            newIndices ~= self selectedProtocolIndices value ifTrue:[
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   613
                self selectedProtocolIndices 
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   614
                    setValue:nil;                    "/ to force update
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   615
                    value:newIndices.
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   616
            ].
10712
da12d4dac8b9 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10687
diff changeset
   617
            "/ cg: does not work (selecting all with testcase classes)
da12d4dac8b9 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10687
diff changeset
   618
            "/ don't see why, at the moment, but....
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   619
            (lastGeneratedProtocols notNil
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   620
            and:[(lastGeneratedProtocols includes:self class nameListEntryForALL)
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   621
            and:[(selectedCategories ? #()) includes:self class nameListEntryForALL]])
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   622
            ifTrue:[
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   623
                "/ no need to update generator
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   624
            ] ifFalse:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   625
                self updateOutputGenerator.
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   626
            ]
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   627
        ].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   628
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
    (changedObject == variableFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
    or:[changedObject == filterClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
    or:[changedObject == packageFilterOnInput]]) ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   634
        self invalidateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   635
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
    changedObject == methodVisibilityHolder ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   639
        self invalidateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   640
        self updateOutputGenerator.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   641
        ^  self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
    lastGeneratedProtocols := nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
    changedObject == inGeneratorHolder ifTrue:[
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   647
        selectedCategories := selectedProtocolsHolder value.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   649
        selectedCategories size > 0 ifTrue:[
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   650
            oldSelectedProtocols := selectedCategories ? #().
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   651
            oldSelectedProtocols := oldSelectedProtocols collect:[:each | each ifNil:[self class nameListEntryForNILCategory]].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   652
            oldSelectedProtocols := oldSelectedProtocols collect:[:each | each string].
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   653
            self updateList.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   654
            rawProtocolList := rawProtocolListHolder value.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   655
            newSelectedProtocols := oldSelectedProtocols select:[:each | rawProtocolList includes:each].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
"/            selectedProtocolsHolder setValue:nil.                    "/ to force update
6412
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   657
            selectedProtocolsHolder value:newSelectedProtocols.
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   658
            ^ self
7fc7cad1a67c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6342
diff changeset
   659
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
    super delayedUpdate:something with:aParameter from:changedObject
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
   664
    "Created: / 05-02-2000 / 13:42:10 / cg"
10720
82b4939aafc5 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10712
diff changeset
   665
    "Modified: / 23-09-2011 / 20:37:31 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
getSelectedProtocolsFromIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    |l|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    l := self rawProtocolList value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
    ^ self selectedProtocolIndices value collect:[:idx | l at:idx].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
selectionChanged
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
    |newSelectedCategories allEntry|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
    newSelectedCategories := self selectedProtocols value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
    "/ the outputGenerator is only to be updated, if the output would really
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
    "/ change ...
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    allEntry := self class nameListEntryForALL.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
    (lastSelectedProtocols notNil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
    and:[newSelectedCategories notNil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
    and:[(lastSelectedProtocols includes:(allEntry))
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
    and:[newSelectedCategories includes:(allEntry)]]]) ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   688
        "/ no change ...
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
   689
        ^ self
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
    super selectionChanged.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
    "Created: / 5.2.2000 / 13:42:10 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
    "Modified: / 24.2.2000 / 14:12:12 / cg"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
selectionChangedByClick
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
    "we are not interested in that - get another notification
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
     via the changed valueHolder"
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
    lastSelectedProtocols := self getSelectedProtocolsFromIndices
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
update:something with:aParameter from:changedObject
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   706
    |cls sel mthd oldMethod newMethod|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
    "/ some can be ignored immediately
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
    changedObject == Smalltalk ifTrue:[
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   710
        something isNil ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   711
            "/ self halt "/ huh - Smalltalk changed - so what ?
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   712
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   713
        ].
6880
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   714
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   715
        something == #currentChangeSet ifTrue:[
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   716
            listValid == true ifTrue:[ self invalidateList ].
6880
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   717
            ^ self.
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   718
        ].
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   719
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   720
        something == #methodInClass ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   721
            "/ a method has been added/removed/changed
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   722
            cls := aParameter at:1.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   723
            (classes notNil and:[classes includesIdentical:cls]) ifFalse:[^ self].
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   724
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   725
            sel := aParameter at:2.
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   726
            self flushMethodInfoForClassNamed:cls name selector:sel.
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   727
            oldMethod := aParameter at:3.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   728
            newMethod := cls compiledMethodAt:sel.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   729
            oldMethod notNil ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   730
                variableFilter value size > 0 ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   731
                    "/ sigh - must invalidate
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   732
                    listValid ifTrue:[ self invalidateList ].
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   733
                    ^ self.    
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   734
                ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   735
                oldMethod category ~= newMethod category ifTrue:[
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   736
                    listValid ifTrue:[ self invalidateList ].
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   737
                    ^ self.    
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   738
                ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   739
                "/ mhmh - its now changed (so coloring will change).
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
   740
                listValid ifTrue:[ self invalidateList ].
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   741
                ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   742
            ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   743
        ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   744
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   745
"/        something == #classDefinition ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
"/            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
"/        ].
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   748
        something == #newClass ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   749
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   750
        ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   751
        something == #classRemove ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   752
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   753
        ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   754
        something == #classRename ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   755
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   756
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   757
"/        something == #classVariables ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
"/            ^ self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
"/        ].
6855
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   760
        something == #classComment ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   761
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   762
        ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   763
        something == #organization ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   764
            ^ self.
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   765
        ].
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   766
        something == #methodTrap ifTrue:[
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   767
            ^ self
93bacd7fcf14 much faster update (only invalidate once, when multiple methods are compiled)
Claus Gittinger <cg@exept.de>
parents: 6706
diff changeset
   768
        ].
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   769
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   770
        something == #methodCoverageInfo ifTrue:[
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   771
            self showCoverageInformation value ifFalse:[^ self].
10368
0f22567c01c2 changed:
Claus Gittinger <cg@exept.de>
parents: 10360
diff changeset
   772
            listValid ifFalse:[^ self ].
0f22567c01c2 changed:
Claus Gittinger <cg@exept.de>
parents: 10360
diff changeset
   773
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   774
            mthd := aParameter.
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   775
            (classes notNil and:[classes includesIdentical:mthd mclass]) ifFalse:[^ self].
10368
0f22567c01c2 changed:
Claus Gittinger <cg@exept.de>
parents: 10360
diff changeset
   776
0f22567c01c2 changed:
Claus Gittinger <cg@exept.de>
parents: 10360
diff changeset
   777
            self enqueueDelayedUpdateList.
0f22567c01c2 changed:
Claus Gittinger <cg@exept.de>
parents: 10360
diff changeset
   778
            ^ self
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
   779
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
11850
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   782
    something == #coverageInfo ifTrue:[
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   783
        listValid == true ifTrue:[
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   784
            self enqueueDelayedUpdateList
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   785
        ].
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   786
        ^ self.
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   787
    ].
aa9240d74afa changed: #update:with:from:
Claus Gittinger <cg@exept.de>
parents: 11717
diff changeset
   788
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
    super update:something with:aParameter from:changedObject.
6880
16c2e0d68cdb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6877
diff changeset
   790
11560
75a7263387f0 list invalidation
Claus Gittinger <cg@exept.de>
parents: 11462
diff changeset
   791
    "Modified: / 05-06-2012 / 23:38:31 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
!MethodCategoryList methodsFor:'drag & drop'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   796
canDropContext:aDropContext
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
    |cat methods|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   799
    methods := aDropContext dropObjects collect:[:obj | obj theObject].
7123
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   800
    (methods conform:[:aMethod | aMethod isMethod]) ifFalse:[^ false].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
    cat := self categoryAtTargetPointOf:aDropContext.
6492
9c446e709216 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6469
diff changeset
   803
    cat isNil ifTrue:[^ false].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
    (methods contains:[:aMethod | aMethod category ~= cat]) ifFalse:[^ false].
6492
9c446e709216 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6469
diff changeset
   806
    ^ true
7123
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   807
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   808
    "Modified: / 13-09-2006 / 11:44:02 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   810
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
categoryAtTargetPointOf:aDropContext
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
    |p methodListView lineNr cat|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
    p := aDropContext targetPoint.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   815
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   816
    methodListView := aDropContext targetWidget.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   817
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
    lineNr := methodListView lineAtY:p y.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
    lineNr isNil ifTrue:[^ nil].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
    cat := rawProtocolList at:lineNr.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
    cat := cat string.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
    cat = self class nameListEntryForALL ifTrue:[^ nil].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   825
    ^ cat
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   826
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   827
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   828
doDropContext:aDropContext
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
   829
    "handle dropping of a method as a category change"
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
   830
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   831
    |cat methods|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   832
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   833
    methods := aDropContext dropObjects collect:[:aDropObject | aDropObject theObject].
7123
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   834
    (methods conform:[:something | something isMethod]) ifFalse:[^ self].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   835
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   836
    cat := self categoryAtTargetPointOf:aDropContext.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   837
    cat notNil ifTrue:[
6469
10eea2ce0ca7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 6412
diff changeset
   838
        self masterApplication moveMethods:methods toProtocol:cat.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   839
    ].
7123
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   840
4dd64dbd0b87 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7056
diff changeset
   841
    "Modified: / 13-09-2006 / 11:43:23 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   842
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   843
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   844
!MethodCategoryList methodsFor:'generators'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   845
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   846
makeGenerator
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   847
    "return a generator which enumerates the methods from the selected protocol;
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   848
     that generator generates 4-element elements (includes the class and protocol), 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   849
     in order to make the consumers only depend on one input 
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   850
     (i.e. to pass multiple-class and multiple-protocol info
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   851
      without a need for another classHolder/protocolHolder in the methodList)."
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   852
12472
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   853
    |protocols noPackage noCat static notStatic|
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   854
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   855
    noPackage := PackageId noProjectID.
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   856
    noCat := (self class nameListEntryForNILCategory).
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   857
    static := (self class nameListEntryForStatic).
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   858
    notStatic := (self class nameListEntryForNonStatic).
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   859
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   860
    protocols := self selectedProtocols value ? #().
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   861
    protocols := protocols collect:[:each | (each ifNil:[noCat]) string].
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   862
    lastGeneratedProtocols := protocols.
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   863
    protocols := protocols asSet.
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   864
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   865
    ^ Iterator 
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   866
        on:[:whatToDo |
12472
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   867
            | 
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
   868
             allProtocols superSendProtocols uncommentedProtocols obsoleteProtocols 
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   869
             documentationProtocols longProtocols extensionProtocols redefinedProtocols
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   870
             redefineProtocols  overrideProtocols
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   871
             missingRequiredProtocols subclassResponsibilities
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   872
             notInstrumentedProtocols annotatedProtocols fullyCoveredProtocols 
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   873
             partiallyCoveredProtocols uncoveredProtocols
12472
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   874
             classSelectorPairsAlreadyDone
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
   875
             packages remainingClasses remainingCategories classesAlreadyDone 
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
   876
             catListed showChanged|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   877
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   878
            (leafClasses size > 0 and:[protocols size > 0]) ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   879
                allProtocols := protocols includes:(self class nameListEntryForALL).
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   880
                superSendProtocols := protocols includes:(self class nameListEntryForSuperSend).
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   881
                uncommentedProtocols := protocols includes:(self class nameListEntryForUncommented).
8718
bbf03e0fcc20 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8694
diff changeset
   882
                obsoleteProtocols := protocols includes:(self class nameListEntryForObsolete).
8733
31c0ffee640f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8723
diff changeset
   883
                documentationProtocols := protocols includes:(self class nameListEntryForDocumentation).
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
   884
                longProtocols := protocols includes:(self class nameListEntryForLong).
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   885
                extensionProtocols := protocols includes:(self class nameListEntryForExtensions).
8964
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
   886
                redefinedProtocols := protocols includes:(self class nameListEntryForRedefined).
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   887
                redefineProtocols := protocols includes:(self class nameListEntryForRedefine).
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   888
                overrideProtocols := protocols includes:(self class nameListEntryForOverride).
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
   889
                missingRequiredProtocols := protocols includes:(self class nameListEntryForRequired).
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   890
                subclassResponsibilities := protocols includes:(self class nameListEntryForMustBeRedefinedInSubclass).
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   891
                annotatedProtocols := protocols includes:(self class nameListEntryForAnnotated).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   892
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   893
                fullyCoveredProtocols := protocols includes:(self class nameListEntryForFullyCovered).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   894
                partiallyCoveredProtocols := protocols includes:(self class nameListEntryForPartiallyCovered).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   895
                uncoveredProtocols := protocols includes:(self class nameListEntryForUncovered).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   896
                notInstrumentedProtocols := protocols includes:(self class nameListEntryForNotInstrumented).
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
   897
            
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   898
                packages := packageFilter value value.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   899
                (packages notNil and:[packages includes:(self class nameListEntryForALL)]) ifTrue:[
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   900
                    packages := nil.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   901
                ].
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
   902
                showChanged := packages notNil and:[packages includes:(self class nameListEntryForChanged)].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   903
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   904
                remainingClasses := leafClasses copy asIdentitySet.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   905
                remainingCategories := protocols copy asSet.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   906
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   907
                classesAlreadyDone := IdentitySet new.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   908
                classSelectorPairsAlreadyDone := Set new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   909
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   910
                leafClasses do:[:aLeafClass |  
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   911
                    (self classesToProcessForClasses:(Array with:aLeafClass)) do:[:aClass |
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
   912
                        |supportsMethodCategories isJavaClass anyInThisClass requiredProtocolForClass|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   913
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   914
                        (classesAlreadyDone includes:aClass) ifFalse:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   915
                            classesAlreadyDone add:aClass.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   916
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   917
                            supportsMethodCategories := aClass supportsMethodCategories.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   918
                            isJavaClass := aClass isJavaClass.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   919
                            anyInThisClass := false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   920
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   921
                            aClass methodDictionary keysAndValuesDo:[:sel :mthd |
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   922
                                |cat mPkg includeIt info|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   923
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   924
"/ sel == #metacelloCleanup ifTrue:[self halt].
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   925
                                supportsMethodCategories ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   926
                                    cat := mthd category.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   927
                                ] ifFalse:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   928
                                    isJavaClass ifTrue:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   929
                                        cat := mthd isStatic ifTrue:[static] ifFalse:[notStatic]
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   930
                                    ] ifFalse:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   931
                                        cat := noCat.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   932
                                    ]
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
   933
                                ].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   934
                                catListed := cat.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   935
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   936
                                mPkg := mthd package.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   937
                                (packages isNil 
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   938
                                    or:[ mPkg = noPackage 
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   939
                                    or:[ (packages includes:mPkg)
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
   940
                                    or:[ allProtocols "(extensionProtocols and:[ mthd isExtension ])"
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
   941
                                    or:[ showChanged    
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
   942
                                    ]]]]
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   943
                                ) ifTrue:[
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   944
                                    "/ used to be a more readable or, but to reuse info, I've splitted it.
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   945
                                    "/ because we should use the parser only once, we reuse the same methodInfo.
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   946
                                    "/ otherwise, the list update becomes too slow for long classes (NewSystemBrowser)
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   947
                                    includeIt := allProtocols.
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   948
                                    includeIt ifFalse:[ includeIt := protocols includes:cat ].
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   949
                                    includeIt ifFalse:[
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   950
                                        superSendProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   951
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   952
                                            includeIt := info sendsSuper ]]. 
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   953
                                    includeIt ifFalse:[
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   954
                                        uncommentedProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   955
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   956
                                            includeIt := info isUncommented.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   957
                                            catListed := self class nameListEntryForUncommented ]]. 
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   958
                                    includeIt ifFalse:[ 
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   959
                                        obsoleteProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   960
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   961
                                            includeIt := info isObsolete ]]. 
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   962
                                    includeIt ifFalse:[ 
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   963
                                        documentationProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   964
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   965
                                            includeIt := info isDocumentationMethod ]].
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
   966
                                    includeIt ifFalse:[ 
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
   967
                                        longProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   968
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
   969
                                            includeIt := info isLongMethod ]].
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   970
                                    includeIt ifFalse:[ 
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   971
                                        extensionProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   972
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   973
                                            includeIt := info isExtensionMethod.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   974
                                            catListed := self class nameListEntryForExtensions ]].
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   975
                                    includeIt ifFalse:[ 
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   976
                                        overrideProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   977
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
   978
                                            includeIt := info isOverride ]].
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   979
"/                                    includeIt ifFalse:[ 
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   980
"/                                        redefinedProtocols ifTrue:[
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   981
"/                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   982
"/                                            includeIt := info isRedefined ]].
8964
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
   983
                                    includeIt ifFalse:[ 
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
   984
                                        redefineProtocols ifTrue:[
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
   985
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
8964
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
   986
                                            includeIt := info isRedefine ]].
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   987
                                    includeIt ifFalse:[
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   988
                                        subclassResponsibilities ifTrue:[
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   989
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
   990
                                            includeIt := info isSubclassResponsibility ]].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   991
                                    includeIt ifFalse:[
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   992
                                        annotatedProtocols ifTrue:[
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   993
                                            info isNil ifTrue:[ info := self methodInfoFor:mthd in:aClass selector:sel ].
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
   994
                                            includeIt := info isAnnotated ]].
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
   995
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
   996
                                    includeIt ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
   997
                                        mthd isInstrumented ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
   998
                                            mthd hasBeenCalled ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
   999
                                                mthd haveAllBlocksBeenExecuted ifTrue:[
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1000
                                                    includeIt := fullyCoveredProtocols.
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1001
                                                ] ifFalse:[
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1002
                                                    includeIt := partiallyCoveredProtocols 
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1003
                                                ]
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1004
                                            ] ifFalse:[
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1005
                                                includeIt := uncoveredProtocols
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1006
                                            ].
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1007
                                        ] ifFalse:[
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1008
                                            includeIt := notInstrumentedProtocols
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1009
                                        ].
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1010
                                    ].
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1011
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1012
                                    includeIt ifTrue:[
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1013
                                        (methodVisibilityHolder value == #class) ifTrue:[
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1014
                                            whatToDo value:aClass value:catListed value:sel value:mthd.
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1015
                                        ] ifFalse:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1016
                                            (classSelectorPairsAlreadyDone includes:(aLeafClass->sel)) ifFalse:[
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1017
                                                classSelectorPairsAlreadyDone add:(aLeafClass->sel).
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1018
                                                whatToDo value:aClass value:catListed value:sel value:mthd.
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1019
                                            ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1020
                                        ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1021
                                        anyInThisClass := true.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1022
                                        remainingCategories remove:catListed ifAbsent:nil.
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1023
                                    ].
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1024
                                ]
7296
dfea12500274 do not suppress loose methods
Claus Gittinger <cg@exept.de>
parents: 7123
diff changeset
  1025
                            ].
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1026
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1027
                            missingRequiredProtocols ifTrue:[
9729
0d29623f7e10 CodeGeneratorTool->SmalltalkCodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 9465
diff changeset
  1028
                                requiredProtocolForClass := SmalltalkCodeGeneratorTool missingRequiredProtocolFor:aClass.
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1029
                                requiredProtocolForClass do:[:sel | 
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1030
                                    |selectorInRed missingMethodPlaceHolder|
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1031
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1032
                                    selectorInRed := sel colorizeAllWith:Color red.
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  1033
                                    missingMethodPlaceHolder := MissingMethod mclass:aClass selector:sel.
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1034
                                    whatToDo value:aClass value:'required' value:selectorInRed value:missingMethodPlaceHolder.
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1035
                                ].
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1036
                            ].
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1037
                            anyInThisClass ifTrue:[ remainingClasses remove:aClass ifAbsent:nil. ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1038
                        ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1039
                    ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1040
                ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1041
                remainingClasses do:[:aClass |
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1042
                    whatToDo value:aClass value:nil value:nil value:nil.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1043
                ].
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1044
                remainingCategories do:[:cat |
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1045
                    whatToDo value:nil value:cat value:nil value:nil.
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1046
                ]
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1047
            ]
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1048
      ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1049
7296
dfea12500274 do not suppress loose methods
Claus Gittinger <cg@exept.de>
parents: 7123
diff changeset
  1050
    "Created: / 05-02-2000 / 13:42:10 / cg"
10712
da12d4dac8b9 changed: #delayedUpdate:with:from:
Claus Gittinger <cg@exept.de>
parents: 10687
diff changeset
  1051
    "Modified: / 18-09-2011 / 12:51:45 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1052
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1053
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1054
!MethodCategoryList methodsFor:'private'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1055
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1056
class:cls protocol:cat includesMethodsInAnyPackage:packageFilter
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1057
    cls methodDictionary keysAndValuesDo:[:sel :mthd |
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1058
        mthd category == cat ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1059
            (packageFilter includes:mthd package) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1060
                ^ true
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1061
            ]
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1062
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1063
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1064
    ^ false
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1065
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1066
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1067
class:cls protocol:cat includesModsOfClassVariable:variablesToHighLight
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1068
    "are there any methods in the protocol cat which modify any class variable in variablesToHighLight ?"
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1069
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1070
    ^ self class:cls protocol:cat includesRefsToVariable:variablesToHighLight askParserWith:#modifiedClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1071
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1072
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1073
class:cls protocol:cat includesModsOfInstanceVariable:variablesToHighLight
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1074
    "are there any methods in the protocol cat which modify any inst variable in variablesToHighLight ?"
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1075
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1076
    ^ self class:cls protocol:cat includesRefsToVariable:variablesToHighLight askParserWith:#modifiedInstVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1077
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1078
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1079
class:cls protocol:cat includesRefsToClassVariable:variablesToHighLight
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1080
    "are there any methods in the protocol cat which reference any class variable in variablesToHighLight ?"
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1081
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1082
    ^ self class:cls protocol:cat includesRefsToVariable:variablesToHighLight askParserWith:#usedClassVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1083
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1084
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1085
class:cls protocol:cat includesRefsToInstanceVariable:variablesToHighLight
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1086
    "are there any methods in the protocol cat which reference any inst variable in variablesToHighLight ?"
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1087
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1088
    ^ self class:cls protocol:cat includesRefsToVariable:variablesToHighLight askParserWith:#usedInstVars
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1089
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1090
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1091
class:cls protocol:cat includesRefsToVariable:variablesToHighLight askParserWith:querySelector
9243
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1092
    "are there any methods in the protocol cat which reference/modify any inst/class variable in variablesToHighLight ?"
f3e49ecd92be comment/format in:
Claus Gittinger <cg@exept.de>
parents: 9128
diff changeset
  1093
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1094
    |anyVarNameAccessable|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1095
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1096
    anyVarNameAccessable := cls allInstVarNames includesAny:variablesToHighLight.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1097
    anyVarNameAccessable ifFalse:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1098
        anyVarNameAccessable := cls theNonMetaclass allClassVarNames includesAny:variablesToHighLight.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1099
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1100
    anyVarNameAccessable ifFalse:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1101
        "/ no need to parse
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1102
        ^ false
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1103
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1104
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1105
    cls selectorsAndMethodsDo:[:sel :mthd |
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1106
        |src parser usedVars|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1107
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1108
        mthd category = cat ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1109
            src := mthd source.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1110
            src notNil ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1111
                "
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1112
                 before doing a slow parse, quickly scan the
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1113
                 methods source for the variables name ...
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1114
                "
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1115
                (variablesToHighLight contains:[:varName | (src findString:varName) ~~ 0]) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1116
                    parser := Parser
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1117
                                    parseMethod:src 
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1118
                                    in:cls 
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1119
                                    ignoreErrors:true 
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1120
                                    ignoreWarnings:true.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1121
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1122
                        usedVars := parser perform:querySelector.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1123
                        (usedVars includesAny:variablesToHighLight)
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1124
                        ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1125
                            ^  true
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1126
                        ]
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1127
                    ]
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1128
                ]        
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1129
            ] ifFalse:[
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
  1130
                Transcript showCR:'Oops - cannot access method source'.
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1131
            ]        
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1132
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1133
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1134
    ^ false
10185
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
  1135
6428d75e11bb comment/format in: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 10180
diff changeset
  1136
    "Modified: / 06-07-2011 / 11:44:25 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1137
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1138
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1139
classesToProcessForClasses:classes
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1140
    ^ self classesToProcessForClasses:classes withVisibility:methodVisibilityHolder value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1141
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1142
8961
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1143
commonPostOpen
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1144
    super commonPostOpen.
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1145
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1146
    self showPseudoProtocols ifTrue:[
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1147
        "/ revalidate my list, because it was only shown lazy
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1148
        self invalidateList.
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1149
    ].
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1150
!
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1151
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1152
flushMethodInfoForClassNamed:className selector:selector
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1153
    MethodInfoCacheAccessLock critical:[
10552
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1154
        MethodInfoCache notNil ifTrue:[
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1155
            MethodInfoCache 
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1156
                removeKey:(className,'>>',selector)
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1157
                ifAbsent:[]
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1158
        ].
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1159
    ]
10552
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1160
b7f2aa57ab63 changed: #lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 10551
diff changeset
  1161
    "Modified: / 08-08-2011 / 19:16:32 / cg"
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1162
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1163
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1164
listOfMethodCategories
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1165
    |categoryList categoryBag plainCategories classesProcessed leafClassesProcessed
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1166
     generator nm variablesToHighlight classVarsToHighLight
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1167
     itemsWithVarRefs itemsWithVarMods itemsWithExtensions itemsWithSuppressedExtensions
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1168
     itemsInChangeSet itemsInRemoteChangeSet
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1169
     itemsWithInstrumentedMethods itemsWithCalledMethods itemsWithUncalledMethods
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1170
     itemsWithPartiallyCoveredMethods itemsWithFullyCoveredMethods
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1171
     packageFilterOnInput packageFilter showChanges nameListEntryForALL changeSet 
8723
2d676b11e886 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8718
diff changeset
  1172
     emphasizedPlus emphasisForRef emphasisForMod
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1173
     numAll numObsolete numSuper numUncommented numDocumentation numLong numOverride
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1174
     numRedefine numRedefined numExtension numMissingRequired numSubclassResponsibility
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1175
     numAnnotated numFullyCovered numPartiallyCovered numUncovered numNotInstrumented 
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1176
     showPseudoProtocols showCoverageInformation
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1177
     addPseudoEntry addPseudoEntryWithColor countAll pseudoEntryColor userPreferences
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1178
     startTime suppressPseudoProtocolsNow needsSpecialColoring|
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1179
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1180
    userPreferences := UserPreferences current.
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1181
    countAll := true.
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1182
    startTime := Timestamp now.
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1183
    suppressPseudoProtocolsNow := false.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1184
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1185
    generator := inGeneratorHolder value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1186
    generator isNil ifTrue:[ ^ #() ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1187
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1188
    showPseudoProtocols := self showPseudoProtocols value.
10348
523f025190ff changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 10297
diff changeset
  1189
    showCoverageInformation := self showCoverageInformation value.
8961
37e61f2e4cf1 added: #commonPostOpen
Claus Gittinger <cg@exept.de>
parents: 8931
diff changeset
  1190
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1191
    nameListEntryForALL := self class nameListEntryForALL.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1192
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1193
    packageFilterOnInput := self packageFilterOnInput value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1194
    (packageFilterOnInput notNil and:[packageFilterOnInput includes:nameListEntryForALL]) ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1195
        packageFilterOnInput := nil
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1196
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1197
    packageFilter := self packageFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1198
    (packageFilter notNil and:[packageFilter includes:nameListEntryForALL]) ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1199
        packageFilter := nil
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1200
    ].
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1201
    showChanges := false.
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1202
    (packageFilter notNil and:[packageFilter includes:self class nameListEntryForChanged]) ifTrue:[
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1203
        showChanges := true
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1204
    ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1205
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1206
    categoryList := Set new.
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1207
    categoryBag := Bag new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1208
    itemsWithVarRefs := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1209
    itemsWithVarMods := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1210
    itemsWithExtensions := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1211
    itemsWithSuppressedExtensions := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1212
    itemsInChangeSet := Set new.
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1213
    itemsInRemoteChangeSet := Set new.
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1214
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1215
    itemsWithInstrumentedMethods := Set new.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1216
    itemsWithCalledMethods := Set new. 
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1217
    itemsWithUncalledMethods := Set new. 
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1218
    itemsWithPartiallyCoveredMethods := Set new.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1219
    itemsWithFullyCoveredMethods := Set new.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1220
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1221
    plainCategories := Set new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
    classesProcessed := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1223
    leafClassesProcessed := IdentitySet new.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
    variablesToHighlight := variableFilter value.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1225
    classVarsToHighLight := filterClassVars value.
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1226
    numObsolete := numSuper := numUncommented := numDocumentation := numLong := 0.
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1227
    numRedefine := numRedefined := numOverride := numExtension := numMissingRequired := numSubclassResponsibility := 0.
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1228
    numNotInstrumented := numFullyCovered := numPartiallyCovered := numUncovered := 0.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1229
    numAnnotated := 0.
12471
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1230
    numAll := 0.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
    generator do:[:clsIn :catIn | 
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1233
                        |emptyProtocols clsName doHighLight doHighLightRed includedCats|
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1234
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1235
                        includedCats := Set new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1237
                        leafClassesProcessed add:clsIn.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1238
                        (self classesToProcessForClasses:(Array with:clsIn)) do:[:cls |
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1239
                            |cats processCategory|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1240
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1241
                            classesProcessed add:cls.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1242
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1243
                            cls ~~ clsIn ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1244
                                cats := cls categories
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1245
                            ] ifFalse:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1246
                                cats := Array with:catIn.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1247
                            ].
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1248
                            cats do:[:cat | 
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1249
                                |suppress|
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1250
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1251
                                cat notNil ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1252
                                    suppress := packageFilterOnInput notNil 
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1253
                                                and:[ (self class:cls protocol:cat includesMethodsInAnyPackage:packageFilterOnInput) not ].
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1254
                                    suppress ifFalse:[
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1255
                                        includedCats add:cat.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1256
8723
2d676b11e886 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8718
diff changeset
  1257
                                        variablesToHighlight notEmptyOrNil ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1258
                                            (itemsWithVarRefs includes:cat) ifFalse:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1259
                                                classVarsToHighLight ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1260
                                                    doHighLight := self class:cls protocol:cat includesRefsToClassVariable:variablesToHighlight.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1261
                                                    doHighLight ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1262
                                                        doHighLightRed := self class:cls protocol:cat includesModsOfClassVariable:variablesToHighlight.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1263
                                                    ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1264
                                                ] ifFalse:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1265
                                                    doHighLight := self class:cls protocol:cat includesRefsToInstanceVariable:variablesToHighlight.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1266
                                                    doHighLight ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1267
                                                        doHighLightRed := self class:cls protocol:cat includesModsOfInstanceVariable:variablesToHighlight.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1268
                                                    ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1269
                                                ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1270
                                                doHighLight ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1271
                                                    itemsWithVarRefs add:cat.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1272
                                                    doHighLightRed ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1273
                                                        itemsWithVarMods add:cat.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1274
                                                    ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1275
                                                ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1276
                                            ]
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1277
                                        ].
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1278
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1279
                                        AdditionalEmptyCategoriesPerClassName size > 0 ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1280
                                            clsName := cls name.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1281
                                            emptyProtocols := AdditionalEmptyCategoriesPerClassName at:clsName ifAbsent:nil.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1282
                                            emptyProtocols size > 0 ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1283
                                                emptyProtocols remove:cat ifAbsent:nil.    
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1284
                                            ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1285
                                            emptyProtocols size == 0 ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1286
                                                AdditionalEmptyCategoriesPerClassName removeKey:clsName ifAbsent:nil
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1287
                                            ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1288
                                        ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1289
                                    ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1290
                                ]
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1291
                            ].
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1292
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1293
                            cats := cats asSet.
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1294
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1295
                            cls selectorsAndMethodsDo:[:sel :mthd |
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1296
                                |info cat suppress|
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1297
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1298
                                (includedCats includes:(cat := mthd category)) ifTrue:[
11940
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1299
                                    suppress := packageFilter notNil 
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1300
                                                and:[ (packageFilter includes:mthd package) not 
b1ff0ac2b9fa changed:
Claus Gittinger <cg@exept.de>
parents: 11913
diff changeset
  1301
                                                and:[ showChanges not ]].
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1302
                                    suppress ifFalse:[
12471
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1303
        numAll := numAll + 1.
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1304
                                        categoryBag add:cat.
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1305
                                        suppressPseudoProtocolsNow ifFalse:[
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1306
                                            info := self methodInfoFor:mthd in:cls selector:sel lazy:suppressPseudoProtocolsNow.
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1307
                                            info notNil ifTrue:[
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1308
                                                info isObsolete ifTrue:[ numObsolete := numObsolete + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1309
                                                info sendsSuper ifTrue:[ numSuper := numSuper + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1310
                                                info isUncommented ifTrue:[ numUncommented := numUncommented + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1311
                                                info isDocumentationMethod ifTrue:[ numDocumentation := numDocumentation + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1312
                                                info isLongMethod ifTrue:[ numLong := numLong + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1313
                                                info isExtensionMethod ifTrue:[ numExtension := numExtension + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1314
                                                info isOverride ifTrue:[ numOverride := numOverride + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1315
                                                info isRedefine ifTrue:[ numRedefine := numRedefine + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1316
                                                info isRedefined ifTrue:[ numRedefined := numRedefined + 1 ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1317
                                                info isSubclassResponsibility ifTrue:[ numSubclassResponsibility := numSubclassResponsibility + 1].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1318
                                                info isAnnotated ifTrue:[ numAnnotated := numAnnotated + 1].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1319
                                            ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1320
                                            (Timestamp now deltaFrom:startTime) > 5 seconds ifTrue:[
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1321
                                                suppressPseudoProtocolsNow := true.
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1322
                                                "/ because we already computed for 5 seconds, more and more will be found in
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1323
                                                "/ the cache, and eventually, pseudo protocols will be shown anyway
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1324
                                                masterApplication showInfo:'suppress pseudo protocols - parsing took too long'.
12049
da944de8de06 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12013
diff changeset
  1325
                                                "/ self enqueueDelayedUpdateList.
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1326
                                            ].
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1327
                                        ]
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1328
                                    ]
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1329
                                ].
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1330
                            ].
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1331
                        ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1332
                 ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1333
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1334
    changeSet := ChangeSet current.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1335
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1336
    classesProcessed do:[:eachClass |
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1337
        |classPackage required|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1338
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1339
        classPackage := eachClass package.
6706
8a8ba991614c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6704
diff changeset
  1340
        eachClass methodDictionary keysAndValuesDo:[:mSelector :mthd |
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1341
            |mPackage mCategory|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1342
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1343
            mPackage := mthd package.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1344
            mCategory := mthd category.    
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1345
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1346
            #fixme.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1347
            mPackage = classPackage ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1348
                mPackage ~~ classPackage ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1349
                    mthd setPackage:(mPackage := mPackage string asSymbol).
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1350
                ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1351
            ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1352
            mPackage ~~ classPackage ifTrue:[
10659
4157482b811c Fix in listOfMethodCategories for methods with nil category (non-smalltalk methods)
vrany
parents: 10652
diff changeset
  1353
                (mCategory notNil and:[mPackage ~= PackageId noProjectID]) ifTrue:[
6877
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1354
                    (packageFilter notNil 
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1355
                    and:[ (packageFilter includes:mPackage) not])
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1356
                    ifTrue:[
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1357
                        itemsWithSuppressedExtensions add:mCategory.    
12471
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1358
                    ] ifFalse:[
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1359
                        itemsWithExtensions add:mCategory.    
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1360
                    ]
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1361
                ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1362
            ].
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1363
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1364
            showCoverageInformation ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1365
                mthd isInstrumented ifTrue:[
9449
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1366
                    mthd category = 'documentation' ifFalse:[
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1367
                        itemsWithInstrumentedMethods add:mCategory.
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1368
                        mthd hasBeenCalled ifTrue:[
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1369
                            itemsWithCalledMethods add:mCategory.
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1370
                            mthd haveAllBlocksBeenExecuted ifTrue:[
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1371
                                itemsWithFullyCoveredMethods add:mCategory.
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1372
                                numFullyCovered := numFullyCovered + 1.
9449
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1373
                            ] ifFalse:[
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1374
                                itemsWithPartiallyCoveredMethods add:mCategory.
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1375
                                numPartiallyCovered := numPartiallyCovered + 1.
9449
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1376
                            ].
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1377
                        ] ifFalse:[
9449
db3be2a21d55 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9445
diff changeset
  1378
                            itemsWithUncalledMethods add:mCategory.
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1379
                            numUncovered := numUncovered + 1.
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1380
                        ].
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1381
                    ].
10360
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1382
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10356
diff changeset
  1383
                    numNotInstrumented := numNotInstrumented + 1.
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1384
                ].
11956
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1385
            ].
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1386
            (changeSet includesChangeForClass:eachClass selector:mSelector) ifTrue:[
12471
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1387
                (packageFilter notNil 
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1388
                and:[ (packageFilter includes:mPackage) not])
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1389
                ifTrue:[
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1390
                    "/ itemsInChangeSetSuppressed add:mCategory.    
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1391
                ] ifFalse:[
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1392
                    itemsInChangeSet add:mCategory.    
cf02312d4d7a class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12400
diff changeset
  1393
                ]
11956
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1394
            ].
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1395
            (SmallTeam notNil and:[ SmallTeam includesChangeForClass:eachClass selector:mSelector] ) ifTrue:[
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1396
                itemsInRemoteChangeSet add:mCategory.    
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1397
            ].
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1398
        ].
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1399
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1400
        (packageFilter isNil or:[ packageFilter includes:eachClass package ]) ifTrue:[
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1401
            (suppressPseudoProtocolsNow not and:[showPseudoProtocols]) ifTrue:[
11913
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1402
                "/ see if there is a subclassResponsibility in a superclass
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1403
                required := SmalltalkCodeGeneratorTool missingRequiredProtocolFor:eachClass.
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1404
                numMissingRequired := numMissingRequired + required size.
71a4233927ca changed:
Claus Gittinger <cg@exept.de>
parents: 11875
diff changeset
  1405
            ].
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  1406
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1407
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1408
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1409
    pseudoEntryColor := self class pseudoEntryForegroundColor.
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1410
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1411
    categoryList := categoryBag asSet asOrderedCollection.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1412
    self rawProtocolList removeAll.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1413
    rawProtocolList addAll:categoryList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1414
6698
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1415
    emphasizedPlus := (self colorizeForDifferentPackage:' [ + ]').
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1416
    emphasisForRef := userPreferences emphasisForReadVariable.
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1417
    emphasisForMod := userPreferences emphasisForWrittenVariable.
6698
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1418
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1419
    needsSpecialColoring :=
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1420
        (itemsInChangeSet notEmpty 
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1421
        or:[itemsInRemoteChangeSet notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1422
        or:[itemsWithExtensions notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1423
        or:[itemsWithVarRefs notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1424
        or:[itemsWithInstrumentedMethods notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1425
        or:[itemsWithCalledMethods notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1426
        or:[itemsWithUncalledMethods notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1427
        or:[itemsWithFullyCoveredMethods notEmpty
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1428
        or:[itemsWithPartiallyCoveredMethods notEmpty]]]]]]]]).
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1429
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1430
    rawProtocolList keysAndValuesDo:[:idx :cat |
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1431
        |item inChangeSet inRemoteChangeSet hasExtensions hasVarRef hasVarMod
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1432
         clr|
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1433
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1434
        item := cat.
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1435
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1436
        needsSpecialColoring ifTrue:[
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1437
            inChangeSet := false.
6701
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1438
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1439
            showCoverageInformation ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1440
                (itemsWithInstrumentedMethods includes:cat) ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1441
                    (itemsWithCalledMethods includes:cat) ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1442
                        (itemsWithPartiallyCoveredMethods includes:cat) ifTrue:[
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1443
                            clr := (userPreferences colorForInstrumentedPartiallyCoveredCode).
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1444
                        ] ifFalse:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1445
                            (itemsWithUncalledMethods includes:cat) ifTrue:[
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1446
                                clr := (userPreferences colorForInstrumentedPartiallyCoveredCode).
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1447
                            ] ifFalse:[
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1448
                                 clr := (userPreferences colorForInstrumentedFullyCoveredCode).
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1449
                            ]                    
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1450
                        ]
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1451
                    ] ifFalse:[
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1452
                        clr := (userPreferences colorForInstrumentedNeverCalledCode).
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1453
                    ].
9452
750e55a24967 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9449
diff changeset
  1454
                    item := self colorize:cat with:(#color -> clr).
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1455
                ]
11956
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1456
            ].
8d7fc34726f6 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  1457
            clr isNil ifTrue:[
9445
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1458
                inChangeSet := itemsInChangeSet includes:cat.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1459
                inChangeSet ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1460
                    item := self colorizeForChangedCode:cat.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1461
                ].
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1462
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1463
                inRemoteChangeSet := itemsInRemoteChangeSet includes:cat.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1464
                inRemoteChangeSet ifTrue:[
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1465
                    item := (self colorizeForChangedCodeInSmallTeam:'!! '),item.
8c1d59b7f33f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
  1466
                ].
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1467
            ].
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1468
6698
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1469
            hasVarRef := itemsWithVarRefs includes:cat.
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1470
            hasVarRef ifTrue:[
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1471
                hasVarMod := itemsWithVarMods includes:cat.
6701
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1472
                item := item asText 
10180
d765319efec9 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9729
diff changeset
  1473
                            emphasisAllAdd:(hasVarMod ifTrue:[emphasisForMod] ifFalse:[emphasisForRef]).
6701
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1474
            ].
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1475
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1476
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1477
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1478
        item := item , ((' (%1)' bindWith:(categoryBag occurrencesOf:cat)) 
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1479
                            colorizeAllWith:pseudoEntryColor).
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1480
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1481
        needsSpecialColoring ifTrue:[
6701
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1482
            hasExtensions := itemsWithExtensions includes:cat.
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1483
            hasExtensions ifTrue:[
c3df9d286697 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6698
diff changeset
  1484
                item := item , emphasizedPlus.
6698
4471601b0461 much faster update
Claus Gittinger <cg@exept.de>
parents: 6695
diff changeset
  1485
            ].
6877
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1486
            inChangeSet ifTrue:[
7056
14542aaca275 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
  1487
                item := item , self class markForBeingInChangeList.
6877
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1488
            ].
11861
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1489
        ].
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1490
d4f6399526ac changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11850
diff changeset
  1491
        categoryList at:idx put:item.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1492
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1493
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1494
    classesProcessed size > 0 ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1495
        "/ those are simulated - in ST/X, empty categories do not
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1496
        "/ really exist; however, during browsing, it makes sense.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1497
        AdditionalEmptyCategoriesPerClassName size > 0 ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1498
            AdditionalEmptyCategoriesPerClassName keysAndValuesDo:[:clsName :protocols |
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1499
                (classesProcessed contains:[:cls | cls name = clsName]) ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1500
                    categoryList addAll:protocols.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1501
                    rawProtocolList addAll:protocols.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1502
                ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1503
            ]
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1504
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1505
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1506
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1507
    self makeIndependent.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1508
    classes := classesProcessed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1509
    leafClasses := leafClassesProcessed.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1510
    self makeDependent.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1511
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1512
    rawProtocolList sortWith:categoryList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1513
    categoryList size == 1 ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1514
        nm := categoryList first string.
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1515
        classes size == 1 ifTrue:[
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1516
            nm := classes first name , '-' , nm
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1517
        ].
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1518
        self protocolLabelHolder value:nm
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1519
    ].
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1520
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1521
    categoryList notEmpty ifTrue:[
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1522
        noAllItem value ~~ true ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1523
            |allName|
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1524
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1525
            countAll ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1526
                allName := self class nameListEntryForALLWithCount bindWith:numAll.
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1527
            ] ifFalse:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1528
                allName := nameListEntryForALL.
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1529
            ].
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1530
            categoryList addFirst:(allName allItalic colorizeAllWith:pseudoEntryColor).
5814
a2370251d01f *** empty log message ***
werner
parents: 5592
diff changeset
  1531
            rawProtocolList addFirst:nameListEntryForALL.
8694
47c8e3fd95dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8219
diff changeset
  1532
        ].
9042
90d6e1c9ad5b changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9039
diff changeset
  1533
    ].
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1534
12013
b25c25ff6211 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 11956
diff changeset
  1535
    (suppressPseudoProtocolsNow not and:[showPseudoProtocols]) ifTrue:[
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1536
        addPseudoEntryWithColor := [:s :n :clr | 
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1537
                                n > 0 ifTrue:[
9126
9ad8ea73b635 comment/format in: #doDropContext:
Claus Gittinger <cg@exept.de>
parents: 9122
diff changeset
  1538
                                    categoryList 
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1539
                                        add:((s bindWith:n) allItalic colorizeAllWith:clr).
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1540
                                    rawProtocolList add:s.
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1541
                                ].
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1542
                           ].
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1543
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1544
        addPseudoEntry := [:s :n | addPseudoEntryWithColor value:s value:n value:pseudoEntryColor].
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  1545
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1546
        addPseudoEntry value:self class nameListEntryForAnnotated value:numAnnotated.
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1547
        addPseudoEntry value:self class nameListEntryForDocumentation value:numDocumentation.
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1548
        addPseudoEntry value:self class nameListEntryForExtensions value:numExtension.
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1549
        addPseudoEntry value:self class nameListEntryForLong value:numLong.
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1550
        addPseudoEntry value:self class nameListEntryForMustBeRedefinedInSubclass value:numSubclassResponsibility.
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1551
        addPseudoEntry value:self class nameListEntryForObsolete value:numObsolete.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1552
        addPseudoEntry value:self class nameListEntryForOverride value:numOverride.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1553
        addPseudoEntry value:self class nameListEntryForRedefine value:numRedefine.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1554
        addPseudoEntry value:self class nameListEntryForRedefined value:numRedefined.
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1555
        "/ I think red is too much of an alert color (and we get more of them as we think...)
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1556
"/        numMissingRequired > 0 ifTrue:[
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1557
"/            categoryList add:((self class nameListEntryForRequired bindWith:numMissingRequired) allItalic "colorizeAllWith:Color red").
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1558
"/            rawProtocolList add:self class nameListEntryForRequired.
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1559
"/        ].
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1560
        addPseudoEntry value:self class nameListEntryForRequired value:numMissingRequired.
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1561
        addPseudoEntry value:self class nameListEntryForSuperSend value:numSuper.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1562
        addPseudoEntry value:self class nameListEntryForUncommented value:numUncommented.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1563
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1564
        showCoverageInformation ifTrue:[                                                                              
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1565
            addPseudoEntry value:self class nameListEntryForNotInstrumented value:numNotInstrumented.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1566
            addPseudoEntryWithColor value:self class nameListEntryForUncovered value:numUncovered value:userPreferences colorForInstrumentedNeverCalledCode.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1567
            addPseudoEntryWithColor value:self class nameListEntryForPartiallyCovered value:numPartiallyCovered value:userPreferences colorForInstrumentedPartiallyCoveredCode.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1568
            addPseudoEntryWithColor value:self class nameListEntryForFullyCovered value:numFullyCovered value:userPreferences colorForInstrumentedFullyCoveredCode.
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1569
        ].
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1570
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1571
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1572
    ^ categoryList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1573
6877
59c8f9e00343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  1574
    "Created: / 05-02-2000 / 13:42:11 / cg"
10659
4157482b811c Fix in listOfMethodCategories for methods with nil category (non-smalltalk methods)
vrany
parents: 10652
diff changeset
  1575
    "Modified: / 31-08-2011 / 16:26:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10687
b10e596f7d9b changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 10679
diff changeset
  1576
    "Modified: / 08-09-2011 / 04:56:47 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1577
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1578
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1579
makeDependent
7501
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1580
    Smalltalk addDependent:self.
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1581
"/    ChangeSet addDependent:self.
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1582
c469ba228dda preps for SmallTeam
Claus Gittinger <cg@exept.de>
parents: 7398
diff changeset
  1583
    "Modified: / 10-11-2006 / 17:57:13 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1584
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1585
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1586
makeIndependent
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1587
    Smalltalk removeDependent:self.
8219
57088175dcda dont forget to make independent
fm
parents: 7501
diff changeset
  1588
"/    ChangeSet removeDependent:self.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1589
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1590
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1591
release
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1592
    super release.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1593
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1594
    filterClassVars removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1595
    methodVisibilityHolder removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1596
    noAllItem removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1597
    packageFilterOnInput removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1598
    selectedProtocolIndices removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1599
    variableFilter removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1600
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1601
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1602
updateList
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1603
    |prevClasses prevSelection newSelection newList oldList sameContents selectedProtocolsHolder rawList|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1604
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1605
    selectedProtocolsHolder := self selectedProtocols.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1606
    
10297
69e003b25399 comment/format in: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 10250
diff changeset
  1607
    prevClasses := classes isNil ifTrue:[ #() ] ifFalse:[ classes copy ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1608
    oldList := self protocolList value copy.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1609
    newList := self listOfMethodCategories.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1610
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1611
    "/ oldListSize := self browserNameList size.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1612
    "/ newListSize := newList size.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1613
    self selectedProtocolIndices removeDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1614
    sameContents := self updateListFor:newList.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1615
    self selectedProtocolIndices addDependent:self.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1616
    sameContents ifFalse:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1617
        prevSelection := lastSelectedProtocols ? (selectedProtocolsHolder value) ? #().
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1618
        "/ prevSelection := selectedProtocolsHolder value ? lastSelectedProtocols ? #().
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1619
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1620
        rawList := self rawProtocolList value.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1621
        newSelection := prevSelection select:[:item | rawList includes:item string].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1622
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1623
        newSelection size > 0 ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1624
            "/ force change (for dependents)
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1625
"/                selectedProtocolsHolder value:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1626
"/                selectedProtocolsHolder value:newSelection.
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1627
            selectedProtocolsHolder setValue:newSelection.
11462
c4aea6f0722e changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 10720
diff changeset
  1628
            selectedProtocolsHolder removeDependent:self.    
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1629
            selectedProtocolsHolder changed:#value.
11462
c4aea6f0722e changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 10720
diff changeset
  1630
            selectedProtocolsHolder addDependent:self.    
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1631
        ] ifFalse:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1632
            prevSelection := selectedProtocolsHolder value.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1633
            selectedProtocolsHolder value:nil.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1634
        ].
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1635
        (prevSelection size > 0 or:[newSelection size > 0]) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1636
            self enqueueDelayedUpdateOutputGenerator.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1637
            "/ self updateOutputGenerator.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1638
        ].
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1639
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1640
"/        prevSelection notNil ifTrue:[
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1641
"/            lastSelectedProtocols := prevSelection.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1642
"/        ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1643
    ] ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1644
        "/ same list - but classes might have changed
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1645
        "/ that is the case, if the class selection has been changed,
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1646
        "/ to another class which has the same categories.
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1647
        (prevClasses size ~= classes size 
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1648
        or:[prevClasses asOrderedCollection ~= (classes ? #()) asOrderedCollection ]) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1649
            (newList size > 0 or:[oldList size > 0]) ifTrue:[
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1650
                self updateOutputGenerator
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1651
            ]
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1652
        ] ifFalse:[
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1653
"/                self protocolList value:newList.
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1654
        ]
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1655
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1656
    listValid := true.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1657
10297
69e003b25399 comment/format in: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 10250
diff changeset
  1658
    "Created: / 05-02-2000 / 13:42:11 / cg"
11462
c4aea6f0722e changed: #updateList
Claus Gittinger <cg@exept.de>
parents: 10720
diff changeset
  1659
    "Modified: / 23-03-2012 / 15:53:41 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1660
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1661
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1662
!MethodCategoryList methodsFor:'private-info'!
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1663
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1664
methodInfoFor:aMethod in:mclass selector:selector
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1665
    ^ self methodInfoFor:aMethod in:mclass selector:selector lazy:false
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1666
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1667
    "Modified: / 08-08-2011 / 18:21:03 / cg"
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1668
!
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1669
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1670
methodInfoFor:aMethod in:mclass selector:selector lazy:lazy
10652
fb29722569ac changed: #methodInfoFor:in:selector:lazy:
Claus Gittinger <cg@exept.de>
parents: 10585
diff changeset
  1671
    |info isDocumentationMethod isVersionMethod def methodsPackage|
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1672
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1673
    "/ the first at:ifAbsent: is aktually not needed - it is here to
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1674
    "/ reduce the average blocking time, and to allow for debugging the info generating
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1675
    "/ code without deadlock
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1676
    MethodInfoCacheAccessLock critical:[
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1677
        info := MethodInfoCache at:aMethod "(mclass name,'>>',selector)" ifAbsent:nil.
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1678
    ].
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1679
    info isNil ifTrue:[
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1680
        lazy ifTrue:[
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1681
            "/ TODO: start a background thread to compute the stuff below,
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1682
            "/ notify me to update the list, when all the lazy info is avail...
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1683
        ] ifFalse:[
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1684
            true "aMethod mclass language isSmalltalk" ifTrue:[
10652
fb29722569ac changed: #methodInfoFor:in:selector:lazy:
Claus Gittinger <cg@exept.de>
parents: 10585
diff changeset
  1685
                methodsPackage := aMethod package.
fb29722569ac changed: #methodInfoFor:in:selector:lazy:
Claus Gittinger <cg@exept.de>
parents: 10585
diff changeset
  1686
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1687
                isVersionMethod := aMethod isVersionMethod.
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1688
                isDocumentationMethod := isVersionMethod not and:[aMethod isDocumentationMethod].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1689
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1690
                info := CachedMethodInfo new.
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1691
                info isObsolete:(aMethod isObsolete). "/ (aMethod isObsolete).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1692
                info sendsSuper:(aMethod superMessages notEmptyOrNil). "/ (aMethod superMessages notEmptyOrNil).
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1693
                info isUncommented:(self methodIsMarkedAsUncommented:aMethod). "/ (self methodIsMarkedAsUncommented:aMethod).
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1694
                info isDocumentationMethod:isDocumentationMethod.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1695
                info isLongMethod:(self methodIsMarkedAsLong:aMethod). "/ (self methodIsMarkedAsLong:aMethod).
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1696
10652
fb29722569ac changed: #methodInfoFor:in:selector:lazy:
Claus Gittinger <cg@exept.de>
parents: 10585
diff changeset
  1697
                methodsPackage ~= mclass package ifTrue:[
fb29722569ac changed: #methodInfoFor:in:selector:lazy:
Claus Gittinger <cg@exept.de>
parents: 10585
diff changeset
  1698
                    methodsPackage ~= #'__NoProject__' ifTrue:[
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1699
                        info isExtensionMethod:true.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1700
                        info isOverride:(
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1701
                                          ((def := methodsPackage asPackageId projectDefinitionClass) notNil
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1702
                                          and:[ (def methodOverwrittenBy:aMethod ) notNil ]) 
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1703
                                        )
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1704
                    ]
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1705
                ] ifFalse:[
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1706
                    info isExtensionMethod:false.
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1707
                    info isOverride:false.
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1708
                ].
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1709
                info isRedefine:(
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1710
                                    ( isVersionMethod not
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1711
                                    and:[ isDocumentationMethod not
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1712
                                    and:[ mclass superclass notNil
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1713
                                    and:[ (mclass superclass whichClassIncludesSelector:selector ) notNil ]]]) 
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1714
                                ).
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1715
"/ too expensive - makes browser slow
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1716
"/                info isRedefined:(
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1717
"/                                    ( isVersionMethod not
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1718
"/                                    and:[ isDocumentationMethod not
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1719
"/                                    and:[ mclass allSubclasses contains:[:cls | cls includesSelector:selector ]]]) 
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1720
"/                                ).
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1721
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1722
                info isSubclassResponsibility:( aMethod sends:#subclassResponsibility or:#subclassResponsibility: ).
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1723
                info isAnnotated:(aMethod hasAnnotation).
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1724
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1725
                MethodInfoCacheAccessLock critical:[
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1726
                    MethodInfoCache at:aMethod "(mclass name,'>>',selector)" put:info
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1727
                ].
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1728
            ].
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1729
        ].
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1730
    ].
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1731
    ^ info
10548
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1732
0797847f51de for now: skip pseudo categories, if too slow.
Claus Gittinger <cg@exept.de>
parents: 10368
diff changeset
  1733
    "Created: / 08-08-2011 / 18:18:14 / cg"
8990
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1734
!
437c2f8eb9a5 changed: #methodInfoFor:in:selector:
Claus Gittinger <cg@exept.de>
parents: 8989
diff changeset
  1735
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1736
methodIsMarkedAsLong:aMethod
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1737
    "if true, it will be also categorized under the pseudo category 'long'"
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1738
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1739
    |src ast linesWithCode visitor|
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1740
9122
a47af769e281 fixed: #methodIsMarkedAsLong:
Michael Beyl <mb@exept.de>
parents: 9086
diff changeset
  1741
    src := aMethod source ? ''.
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1742
    src asCollectionOfLines size < UserPreferences current numberOfLinesForLongMethod "~~30" ifTrue:[^ false].
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1743
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1744
    "/ ok, it is long;
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1745
    "/ but do not blame the user for writing documentation (dont count comments),
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1746
    "/ or using literal arrays
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1747
    RBParser notNil ifTrue:[
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1748
        ast := RBParser parseMethod:src.
8992
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1749
        ast notNil ifTrue:[
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1750
            visitor := RBProgramNodeVisitor new.
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1751
            visitor pluggableNodeAction:
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1752
                [:eachNode |
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1753
                    |lno|
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1754
                    lno := eachNode lineNumber.
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1755
                    lno notNil ifTrue:[ linesWithCode add:lno ].
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1756
                ].
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1757
8992
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1758
            linesWithCode := Set new.
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1759
            ast acceptVisitor:visitor.
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1760
            linesWithCode size < UserPreferences current numberOfLinesForLongMethod "~~30" ifTrue:[^ false].
d7a42a5b9be4 changed: #methodIsMarkedAsLong:
fm
parents: 8990
diff changeset
  1761
        ].
8989
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1762
    ].
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1763
    ^ true.
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1764
!
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1765
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1766
methodIsMarkedAsUncommented:aMethod
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1767
    "if true, it will be also categorized under the pseudo category 'undocumented'"
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1768
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1769
    ^ aMethod comment isEmptyOrNil 
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1770
    and:[aMethod isVersionMethod not]
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1771
! !
b0d23a8ca15b dont count comments when judging a method as being \"long\"
Claus Gittinger <cg@exept.de>
parents: 8982
diff changeset
  1772
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1773
!MethodCategoryList methodsFor:'special'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1774
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1775
addAdditionalProtocol:aProtocol forClass:aClass
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1776
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1777
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1778
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1779
     remembered here"
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1780
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1781
    |categories|
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1782
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1783
    AdditionalEmptyCategoriesPerClassName isNil ifTrue:[
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1784
        AdditionalEmptyCategoriesPerClassName := Dictionary new.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1785
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1786
    categories := AdditionalEmptyCategoriesPerClassName at:aClass name ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1787
    categories isNil ifTrue:[
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1788
        categories := Set new.
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1789
        AdditionalEmptyCategoriesPerClassName at:aClass name put:categories.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1790
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1791
    categories add:aProtocol.
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1792
    aClass changed:#organization.                                                       "/ not really ... to force update
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1793
    Smalltalk changed:#methodCategoryAdded with:(Array with:aClass with:aProtocol).     "/ not really ... to force update
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1794
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1795
    "Modified (comment): / 01-08-2012 / 17:30:36 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1796
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1797
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1798
additionalProtocolForClass:aClass
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1799
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1800
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1801
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1802
     remembered here"
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1803
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1804
    AdditionalEmptyCategoriesPerClassName isNil ifTrue:[ ^ #() ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1805
    ^ AdditionalEmptyCategoriesPerClassName at:aClass name ifAbsent:[ #() ].
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1806
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1807
    "Modified (comment): / 01-08-2012 / 17:29:16 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1808
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1809
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1810
clearLastSelectedProtocol
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1811
    lastSelectedProtocols := nil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1812
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1813
6342
698b45d51014 new method-category initial offer
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
  1814
lastSelectedProtocols
698b45d51014 new method-category initial offer
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
  1815
    ^ lastSelectedProtocols
698b45d51014 new method-category initial offer
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
  1816
!
698b45d51014 new method-category initial offer
Claus Gittinger <cg@exept.de>
parents: 5950
diff changeset
  1817
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1818
removeAdditionalProtocol:aListOfProtocols forClass:aClass
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1819
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1820
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1821
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1822
     remembered here"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1823
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1824
    |categories|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1825
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1826
    AdditionalEmptyCategoriesPerClassName isNil ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1827
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1828
    categories := AdditionalEmptyCategoriesPerClassName at:aClass name ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1829
    categories isNil ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1830
    categories removeAllFoundIn:aListOfProtocols.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1831
    categories isEmpty ifTrue:[
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1832
        AdditionalEmptyCategoriesPerClassName removeKey:aClass name.
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1833
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1834
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1835
    aClass changed:#organization.                      "/ not really ... to force update
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1836
    Smalltalk changed:#methodCategoriesRemoved with:(Array with:aClass with:aListOfProtocols).     "/ not really ... to force update
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1837
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1838
    "Modified (comment): / 01-08-2012 / 17:29:59 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1839
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1840
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1841
removeAllAdditionalProtocol
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1842
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1843
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1844
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1845
     remembered here"
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1846
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1847
    AdditionalEmptyCategoriesPerClassName := nil
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1848
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1849
    "Modified (comment): / 01-08-2012 / 17:30:05 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1850
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1851
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1852
removeAllAdditionalProtocolForClass:aClass
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1853
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1854
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1855
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1856
     remembered here"
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1857
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1858
    AdditionalEmptyCategoriesPerClassName notNil ifTrue:[
9128
26fb27aa3d40 changed: #listOfMethodCategories
Claus Gittinger <cg@exept.de>
parents: 9126
diff changeset
  1859
        AdditionalEmptyCategoriesPerClassName removeKey:aClass name ifAbsent:nil
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1860
    ].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1861
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1862
    "Modified (comment): / 01-08-2012 / 17:30:10 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1863
!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1864
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1865
renameAdditionalProtocol:oldName to:newName forClass:aClass
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1866
    "those are simulated - in ST/X, empty categories do not really exist; 
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1867
     (because the category is an attribute of the method)
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1868
     However, during browsing, it makes sense. Therefore, empty categories are
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1869
     remembered here"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1870
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1871
    |categories|
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1872
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1873
    AdditionalEmptyCategoriesPerClassName isNil ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1874
    categories := AdditionalEmptyCategoriesPerClassName at:aClass name ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1875
    categories isNil ifTrue:[^ self].
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1876
    categories remove:oldName ifAbsent:nil.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1877
    categories add:newName.
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1878
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1879
    aClass changed:#organization.                      "/ not really ... to force update
6664
50eb2e92aaed changed change-update aspect when changing some method category
Claus Gittinger <cg@exept.de>
parents: 6492
diff changeset
  1880
    Smalltalk changed:#methodCategoryRenamed with:(Array with:aClass with:oldName with:newName).     "/ not really ... to force update
11717
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1881
eb28ca5f1a4c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11560
diff changeset
  1882
    "Modified (comment): / 01-08-2012 / 17:30:16 / cg"
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1883
! !
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1884
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1885
!MethodCategoryList::CachedMethodInfo class methodsFor:'initialization'!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1886
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1887
initialize
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1888
    FlagObsolete := 1.
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1889
    FlagSendsSuper := 2.
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1890
    FlagIsUncommented := 4.
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1891
    FlagIsDocumentationMethod := 8.
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1892
    FlagIsLongMethod := 16.
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1893
    FlagIsExtension := 32.
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1894
    FlagIsOverride := 64.
8964
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1895
    FlagIsRedefine := 128.
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  1896
    FlagIsSubclassResponsibility := 128.
10250
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  1897
    FlagIsTest := 256.
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1898
    FlagIsAnnotated := 512.
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1899
    FlagIsRedefined := 1024.
10250
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  1900
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  1901
    "Modified: / 08-03-2010 / 18:33:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1902
    "Modified: / 07-09-2011 / 10:04:30 / cg"
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1903
! !
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1904
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1905
!MethodCategoryList::CachedMethodInfo class methodsFor:'instance creation'!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1906
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1907
new
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1908
    ^ self basicNew flags:0.
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1909
! !
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1910
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1911
!MethodCategoryList::CachedMethodInfo methodsFor:'accessing'!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1912
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1913
flags:something
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1914
    flags := something.
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1915
!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1916
10679
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1917
isAnnotated
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1918
    ^ (flags ? 0) bitTest: FlagIsAnnotated
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1919
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1920
    "Created: / 07-09-2011 / 10:04:56 / cg"
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1921
!
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1922
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1923
isAnnotated:aBoolean
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1924
    flags := aBoolean
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1925
                ifTrue:[ flags bitOr: FlagIsAnnotated ]
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1926
                ifFalse:[ flags bitClear: FlagIsAnnotated]
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1927
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1928
    "Created: / 07-09-2011 / 10:04:48 / cg"
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1929
!
b5345fb2b162 changed:
Claus Gittinger <cg@exept.de>
parents: 10659
diff changeset
  1930
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1931
isDocumentationMethod
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1932
    ^ (flags ? 0) bitTest: FlagIsDocumentationMethod
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1933
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1934
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1935
isDocumentationMethod:aBoolean
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1936
    flags := aBoolean
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1937
                ifTrue:[ flags bitOr: FlagIsDocumentationMethod ]
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1938
                ifFalse:[ flags bitClear: FlagIsDocumentationMethod]
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1939
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1940
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1941
isExtensionMethod
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1942
    ^ (flags ? 0) bitTest: FlagIsExtension
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1943
!
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1944
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1945
isExtensionMethod:aBoolean
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1946
    flags := aBoolean
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1947
                ifTrue:[ flags bitOr: FlagIsExtension ]
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1948
                ifFalse:[ flags bitClear: FlagIsExtension]
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1949
!
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1950
8867
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1951
isLongMethod
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1952
    ^ (flags ? 0) bitTest: FlagIsLongMethod
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1953
!
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1954
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1955
isLongMethod:aBoolean
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1956
    flags := aBoolean
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1957
                ifTrue:[ flags bitOr: FlagIsLongMethod ]
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1958
                ifFalse:[ flags bitClear: FlagIsLongMethod]
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1959
!
c926be235b4b changed:
Claus Gittinger <cg@exept.de>
parents: 8860
diff changeset
  1960
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1961
isObsolete
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1962
    ^ (flags ? 0) bitTest: FlagObsolete
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1963
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1964
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1965
isObsolete:aBoolean
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1966
    flags := aBoolean
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1967
                ifTrue:[ flags bitOr: FlagObsolete ]
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  1968
                ifFalse:[ flags bitClear: FlagObsolete]
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1969
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  1970
8931
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1971
isOverride
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1972
    ^ (flags ? 0) bitTest: FlagIsOverride
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1973
!
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1974
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1975
isOverride:aBoolean
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1976
    flags := aBoolean
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1977
                ifTrue:[ flags bitOr: FlagIsOverride ]
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1978
                ifFalse:[ flags bitClear: FlagIsOverride]
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1979
!
8c8ce24dadb2 changed:
Claus Gittinger <cg@exept.de>
parents: 8867
diff changeset
  1980
8964
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1981
isRedefine
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1982
    ^ (flags ? 0) bitTest: FlagIsRedefine
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1983
!
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1984
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1985
isRedefine:aBoolean
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1986
    flags := aBoolean
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1987
                ifTrue:[ flags bitOr: FlagIsRedefine ]
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1988
                ifFalse:[ flags bitClear: FlagIsRedefine]
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1989
!
c10e1d1fd7a7 changed:
Claus Gittinger <cg@exept.de>
parents: 8961
diff changeset
  1990
11865
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1991
isRedefined
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1992
    ^ (flags ? 0) bitTest: FlagIsRedefined
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1993
!
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1994
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1995
isRedefined:aBoolean
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1996
    flags := aBoolean
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1997
                ifTrue:[ flags bitOr: FlagIsRedefined ]
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1998
                ifFalse:[ flags bitClear: FlagIsRedefined]
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  1999
!
8f5b3656de91 changed:
Claus Gittinger <cg@exept.de>
parents: 11861
diff changeset
  2000
9086
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2001
isSubclassResponsibility
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2002
    ^ (flags ? 0) bitTest: FlagIsSubclassResponsibility
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2003
!
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2004
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2005
isSubclassResponsibility:aBoolean
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2006
    flags := aBoolean
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2007
                ifTrue:[ flags bitOr: FlagIsSubclassResponsibility ]
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2008
                ifFalse:[ flags bitClear: FlagIsSubclassResponsibility]
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2009
!
7b52c338df83 changed:
Claus Gittinger <cg@exept.de>
parents: 9083
diff changeset
  2010
10250
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2011
isTest
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2012
    ^ (flags ? 0) bitTest: FlagIsTest
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2013
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2014
    "Created: / 08-03-2010 / 18:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2015
!
28480979852b Merged with JV's branch
vrany
parents: 10231
diff changeset
  2016
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2017
isUncommented
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2018
    ^ (flags ? 0) bitTest: FlagIsUncommented
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2019
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2020
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2021
isUncommented:aBoolean 
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2022
    flags := aBoolean
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2023
                ifTrue:[ flags bitOr: FlagIsUncommented ]
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2024
                ifFalse:[ flags bitClear: FlagIsUncommented]
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2025
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2026
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2027
sendsSuper
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2028
    ^ (flags ? 0) bitTest: FlagSendsSuper
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2029
!
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2030
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2031
sendsSuper:aBoolean
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2032
    flags := aBoolean
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2033
                ifTrue:[ flags bitOr: FlagSendsSuper ]
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2034
                ifFalse:[ flags bitClear: FlagSendsSuper]
8781
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2035
! !
385e3f19694a cache the methodInfo - parsing for isUncommented/sendsSuper etc. is
Claus Gittinger <cg@exept.de>
parents: 8742
diff changeset
  2036
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2037
!MethodCategoryList::MissingMethod class methodsFor:'instance creation'!
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2038
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2039
mclass:aClass selector:aSelector
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2040
    ^ self new mclass:aClass selector:aSelector
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2041
! !
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2042
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2043
!MethodCategoryList::MissingMethod methodsFor:'accessing'!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2044
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2045
mclass
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2046
    ^ mclass
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2047
!
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2048
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2049
mclass:aClass
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2050
    mclass := aClass
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2051
!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2052
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2053
mclass:aClass selector:aSelector
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2054
    mclass := aClass.
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2055
    selector := aSelector.
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2056
!
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2057
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2058
selector
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2059
    ^ selector
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2060
!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2061
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2062
selector:something
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2063
    selector := something.
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2064
!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2065
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2066
source
9729
0d29623f7e10 CodeGeneratorTool->SmalltalkCodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 9465
diff changeset
  2067
    ^ (SmalltalkCodeGeneratorTool basicNew
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2068
        codeFor_shouldImplementFor:selector inClass:mclass) 
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2069
            colorizeAllWith:Color red
9729
0d29623f7e10 CodeGeneratorTool->SmalltalkCodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 9465
diff changeset
  2070
0d29623f7e10 CodeGeneratorTool->SmalltalkCodeGeneratorTool
Claus Gittinger <cg@exept.de>
parents: 9465
diff changeset
  2071
    "Modified: / 31-01-2011 / 18:29:17 / cg"
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2072
! !
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2073
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2074
!MethodCategoryList::MissingMethod methodsFor:'printing & storing'!
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2075
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2076
printStringForBrowserWithSelector:selector inClass:aClass
9043
1948809d220d changed: #makeGenerator
Claus Gittinger <cg@exept.de>
parents: 9042
diff changeset
  2077
    ^ (selector,' (** missing required **)') colorizeAllWith:Color red
9039
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2078
! !
c7c93f434394 required missing protocol display
Claus Gittinger <cg@exept.de>
parents: 8992
diff changeset
  2079
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2080
!MethodCategoryList class methodsFor:'documentation'!
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2081
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  2082
version
12472
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
  2083
    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.92 2013-03-16 09:49:32 cg Exp $'
10356
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  2084
!
19c1203f85ca more coverage info
Claus Gittinger <cg@exept.de>
parents: 10348
diff changeset
  2085
8848
1bc3db6d2e50 changed: #methodInfoFor:
Claus Gittinger <cg@exept.de>
parents: 8785
diff changeset
  2086
version_CVS
12472
bb57c2a55f36 class: Tools::MethodCategoryList
Claus Gittinger <cg@exept.de>
parents: 12471
diff changeset
  2087
    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.92 2013-03-16 09:49:32 cg Exp $'
5591
273637686948 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2088
! !
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2089
12400
32a9d286d90f add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 12049
diff changeset
  2090
8860
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2091
MethodCategoryList initialize!
d8ce6a00a43f use a global methodInfoCache
Claus Gittinger <cg@exept.de>
parents: 8848
diff changeset
  2092
MethodCategoryList::CachedMethodInfo initialize!