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