Tools__ImplementingClassList.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 19 Jul 2017 09:42:32 +0200
branchjv
changeset 17619 edb119820fcb
parent 12431 9f0c59c742d5
permissions -rw-r--r--
Issue #154: Set window style using `#beToolWindow` to indicate that the minirunner window is kind of support tool rather than some X11 specific code (which does not work on Windows of course) See https://swing.fit.cvut.cz/projects/stx-jv/ticket/154
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10003
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
12123
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     3
              All Rights Reserved
10040
57d6484b016b changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10003
diff changeset
     4
12123
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     5
 This software is furnished under a license and may be used
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     6
 only in accordance with the terms of that license and with the
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     8
 be provided or otherwise made available to, or used by, any
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
     9
 other person.  No title to or ownership of the software is
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    10
 hereby transferred.
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    11
"
10003
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
MethodList subclass:#ImplementingClassList
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:''
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-Browsers-New'
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!ImplementingClassList class methodsFor:'documentation'!
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
12123
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    27
 COPYRIGHT (c) 2004 by eXept Software AG
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    28
              All Rights Reserved
10003
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
12123
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    30
 This software is furnished under a license and may be used
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    31
 only in accordance with the terms of that license and with the
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    33
 be provided or otherwise made available to, or used by, any
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    34
 other person.  No title to or ownership of the software is
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
    35
 hereby transferred.
10003
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    Like a ClassList, but shows classes hierarchical.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    If topClassHolders value is non-nil, only that classes hierarchy
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    is shown.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    embeddable application displaying the classes as listed by
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    the inputGenerator.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    Provides an outputGenerator, which enumerates the classes and
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    their protocols (method-categories) in the selected classes.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    [author:]
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	Claus Gittinger (cg@exept.de)
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
! !
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!ImplementingClassList methodsFor:'private'!
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
listOfMethodNames
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    |methods entries newNameList 
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
     allCategories classUses allSelectors generator 
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
     "theMethod"|
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    generator := inGeneratorHolder value.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    generator isNil ifTrue:[^ #() ].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    classUses := Bag identityNew.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    allSelectors := IdentitySet new.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    allCategories := Set new.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    entries := OrderedCollection new.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    "/ generator generates nil-selector entries
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    "/ to pass multiple-class and multiple-protocol info
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    generator do:[:cls :cat :sel :mthd | 
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
			sel notNil ifTrue:[
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
			    entries add:(Array with:cls with:sel with:mthd).
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
			    classUses add:cls.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
			    allSelectors add:sel.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
			    allCategories add:mthd category.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
			]
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
		 ].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    entries sort:[:a :b | |clsNmA clsNmB|
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
			   clsNmA := (a at:1) name.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
			   clsNmB := (b at:1) name.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
			   clsNmA < clsNmB
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
		 ].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    newNameList := entries collect:[:entry | 
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
					|class nm|
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
					class := (entry at:1).
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
					nm := class name.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
					((allSelectors size > 1)
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
					or:[(classUses occurrencesOf:class) > 1]) ifTrue:[
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
					    nm := nm , ' ' , (entry at:2)
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
					].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
					allCategories size > 1 ifTrue:[
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
					    nm := nm , ' {' , (entry at:3) category , '}'
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
					].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
"/                                        class name , ' ' , (entry at:2)
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
					nm
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
				   ].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    methods := entries collect:[:entry | (entry at:3)].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    methodList := methods.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
"/    methods size == 1 ifTrue:[
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
"/        theMethod := methods first.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
"/        self methodLabelHolder value:(theMethod mclass name , ' ' , theMethod selector).
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
"/    ].
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    ^ newNameList.
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    "Created: / 5.2.2000 / 22:43:40 / cg"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    "Modified: / 1.3.2000 / 21:00:26 / cg"
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!ImplementingClassList class methodsFor:'documentation'!
ed8572afe3f2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
12123
4bde08cebd48 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 10040
diff changeset
   119
version
12314
0cbf76168690 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12308
diff changeset
   120
    ^ '$Id: Tools__ImplementingClassList.st 8083 2013-01-14 11:48:37Z vranyj1 $'
12128
a7ff7d66ee85 Improvements in LintHighlighter, few fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   121
!
a7ff7d66ee85 Improvements in LintHighlighter, few fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   122
12431
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   123
version_HG
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   124
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   125
    ^ '$Changeset: <not expanded> $'
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   126
!
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   127
12128
a7ff7d66ee85 Improvements in LintHighlighter, few fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   128
version_SVN
12314
0cbf76168690 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12308
diff changeset
   129
    ^ '$Id: Tools__ImplementingClassList.st 8083 2013-01-14 11:48:37Z vranyj1 $'
12125
0c49a3b13e43 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12123
diff changeset
   130
! !
12431
9f0c59c742d5 Added LintRuleSettingsApplication and LintRuleEditDialog to define user-defined rule sets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12314
diff changeset
   131