ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Tue, 16 Jan 2018 22:13:47 +0100
changeset 17899 fd1e7993ab71
parent 17848 ab289c04f89c
child 17924 e9ec188d9e59
permissions -rw-r--r--
#OTHER by cg big refactoring: replaced all flyByHelpXXX sends and implementations by helpXXX. This should remove the confusion on where the tooltips should be stored and which methods need to be redefined. ATTENTION: May introduce temporary inconveniences until all other applications (in exept:xxx packages) are changed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
     1
"{ Encoding: utf8 }"
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
     2
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     3
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 1
diff changeset
     4
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
     5
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    13
"
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    14
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    15
15082
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    16
"{ NameSpace: Smalltalk }"
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    17
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    18
StandardSystemView subclass:#ChangesBrowser
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    19
	instanceVariableNames:'changesReader changeInfoList changeListView codeView diffView
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    20
		changeFileName anyChanges changeNrShown changeNrProcessed
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    21
		multipleApply autoCompare changeFileSize changeFileTimestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    22
		checkBlock tabSpec autoUpdate editingClassSource lastSearchType
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    23
		lastSearchString applyInOriginalNameSpace lastSaveFileName
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    24
		readOnly enforcedPackage enforcedNameSpace updateChangeSet
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
    25
		showingDiffs diffViewBox autoloadAsRequired
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
    26
		classesNotToBeAutoloaded encodingIfKnown
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    27
		ignorePublicPrivateCategories changeListSelectionHolder
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    28
		defaultApplicationForVAGEClasses infoHolder leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    29
		rightCodeLabelHolder'
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    30
	classVariableNames:'CompressSnapshotInfo DefaultAutoCompare DefaultShowingDiffs
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    31
		KeepEnforcedNameSpace LastEnforcedNameSpace NoColoring
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    32
		ShowWarningDialogs'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    33
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    34
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    35
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    36
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    37
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    38
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    39
		changeFileTimestamp changeInfo changeChunks changeClassNames
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    40
		changeHeaderLines changePositions changeTimeStamps
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    41
		changeIsFollowupMethodChange autoCompare autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    42
		tabSpec anyChanges inStream thisIsAClassSource chunkText
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    43
		chunkPosition sawExcla fullChunkText noColoring timeStampInfo
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    44
		changeString changeType changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    45
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    46
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    47
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    48
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    49
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    50
Object subclass:#ChangeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    51
	instanceVariableNames:'position chunk className selector headerLine timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    52
		isFollowupChange'
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    53
	classVariableNames:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    54
	poolDictionaries:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    55
	privateIn:ChangesBrowser
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    56
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    57
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    58
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    61
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    62
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    63
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    64
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    65
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    66
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    69
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    70
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    71
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    72
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    73
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    74
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    75
"
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    76
    this implements a browser for the changes-file 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    77
    (actually, it can display any sourceFile's contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    78
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    79
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    80
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    81
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    82
    This is a very old leftover class (it was one of the very first apps in ST/X
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    83
    and the Merovingian has not yet detected this one ;-)
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    84
    It will be completely replaced by the ChangeSetBrowser class in the near future.
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    85
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    86
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    87
    [Class variables:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    88
        CompressSnapshotInfo            if true (the default), snapshot entries
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    89
                                        are also compressed in the compress function.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    90
                                        Some users prefer them to be not compressed.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    91
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    92
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    93
    Notice:
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    94
        this needs a total rewrite, to build up a changeSet from the file
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    95
        (which did not exist when the ChangesBrowser was originally written)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    96
        and manipulate that changeSet.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    97
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    98
        This way, we get a browser for any upcoming incore changeSets for
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    99
        free. Also, this will put the chunk analysation code into Change and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   100
        subclasses (where it belongs) and give a better encapsulation and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   101
        overall structure. Do not take this as an example for good style ;-)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   102
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   103
        The Change hierarchy is currently been completed, and the changes browser
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
   104
        should be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   105
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   106
    [author:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   107
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   108
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   109
    [start with:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   110
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   111
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   112
    [see also:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   113
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   114
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   115
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   116
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   117
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   118
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   119
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   120
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   121
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   122
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   123
    |fileName browser|
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   124
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   125
    fileName := aFilename asFilename pathName.
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   126
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   127
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   128
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   129
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   130
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   131
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   132
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   133
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   134
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   135
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   136
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   137
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   138
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   139
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   140
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   141
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   142
571fd5eee315 Initial revision
claus
parents:
diff changeset
   143
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   144
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   145
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   146
571fd5eee315 Initial revision
claus
parents:
diff changeset
   147
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   148
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   149
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   150
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   151
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   152
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   153
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   154
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   155
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   156
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   157
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   158
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   159
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   160
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   161
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   162
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   163
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   164
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   165
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   166
     (to allow start of a change browser via double-click in the browser)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   167
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   168
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   169
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   170
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   171
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   172
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   173
!ChangesBrowser class methodsFor:'help specs'!
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   174
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
   175
helpSpec
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   176
    <resource: #help>
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   177
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   178
    ^ Dictionary new 
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   179
        addPairsFrom:#(
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   180
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   181
#applyChange
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   182
'Apply (install) the selected change'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   183
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   184
deleteAllForClass
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   185
'Delete all changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   186
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   187
deleteForClassFromBegin
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   188
'Delete this and all previous changes for the selected change''s class'
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   189
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   190
deleteForClassToEnd
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   191
'Delete this and all following changes for the selected change''s class'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   192
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   193
deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   194
'Delete all changes for the selected method'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   195
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   196
deleteClassSelectorOlder
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   197
'Delete this and all previous changes for the selected method'
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   198
)
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   199
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   200
    "Modified: / 25-07-2017 / 10:55:55 / cg"
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   201
! !
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   202
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   203
!ChangesBrowser class methodsFor:'menu specs'!
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   204
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   205
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   206
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   207
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   208
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   209
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   210
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   211
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   212
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   213
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   214
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   215
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   216
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   217
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   218
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   219
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   220
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   221
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   222
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   223
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   224
            label: 'File'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   225
            submenuChannel: menuSpecFile
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   226
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   227
         (MenuItem
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   228
            label: 'CHANGE'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   229
            submenuChannel: menuSpecChange
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   230
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   231
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   232
            label: 'Search'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   233
            submenuChannel: menuSpecSearch
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   234
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   236
            label: 'Browse'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   237
            submenuChannel: menuSpecBrowse
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   238
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   240
            label: 'Settings'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   241
            submenuChannel: menuSpecSettings
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   242
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   243
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   244
            label: 'MENU_Help'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   245
            submenuChannel: menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   246
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   247
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   248
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   249
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   250
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   251
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   252
    "Modified: / 21-11-2016 / 23:46:22 / cg"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   253
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   254
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   255
menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   256
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   257
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   258
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   259
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   260
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   261
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   262
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   263
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   264
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   265
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecBrowse)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   266
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   267
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   268
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   269
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   270
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   271
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   272
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   273
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   274
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   275
            label: 'Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   276
            itemValue: doBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   277
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   278
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   279
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   280
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   281
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   282
            label: 'Senders...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   283
            itemValue: doBrowseSenders
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   284
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   285
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   286
            label: 'Implementors...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   287
            itemValue: doBrowseImplementors
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   288
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   289
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   290
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   291
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   292
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   293
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   294
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   295
menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   296
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   297
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   298
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   299
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   300
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   301
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   302
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   303
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   304
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   305
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecChange)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   306
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   307
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   308
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   309
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   310
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   311
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   312
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   313
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   314
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   315
            label: 'Apply'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   316
            itemValue: doApply
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   317
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   318
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   319
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   320
            label: 'Apply to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   321
            itemValue: doApplyRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   322
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   323
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   324
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   325
            label: 'Apply from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   326
            itemValue: doApplyFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   327
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   328
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   329
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   330
            label: 'Apply for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   331
            itemValue: doApplyClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   332
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   333
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   334
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   335
            label: 'Apply for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   336
            itemValue: doApplyClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   337
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   338
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   339
            enabled: hasNoSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   340
            label: 'Apply All'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   341
            itemValue: doApplyAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   342
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   343
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   344
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   345
            label: 'Apply to Conflict or End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   346
            itemValue: doApplyToConflictOrEnd
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   347
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   348
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   349
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   350
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   351
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   352
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   353
            label: 'Delete'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   354
            itemValue: doDelete
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   355
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   356
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   357
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   358
            label: 'Delete to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   359
            itemValue: doDeleteRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   360
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   361
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   362
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   363
            label: 'Delete from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   364
            itemValue: doDeleteFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   365
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   366
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   367
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   368
            label: 'Delete for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   369
            itemValue: doDeleteClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   370
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   371
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   372
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   373
            label: 'Delete for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   374
            itemValue: doDeleteClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   375
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   376
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   377
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   378
            label: 'Delete all for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   379
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   380
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   381
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   382
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   383
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   384
            label: 'Delete all for Class && its Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   385
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   386
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   387
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   388
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   389
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   390
            label: 'Delete all for Namespace'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   391
            itemValue: doDeleteAllForNamespace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   392
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   393
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   394
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   395
            label: 'Delete all for Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   396
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   397
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   398
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   399
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   400
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   401
            label: 'Delete all for Classes && their Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   402
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   403
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   404
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   405
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   406
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   407
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   408
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   409
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   410
            label: 'Delete older Versions of Selected Method'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   411
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   412
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   413
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   414
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   415
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   416
            label: 'Delete older Versions of all Selected Methods'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   417
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   418
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   419
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   420
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   421
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   422
            label: 'Delete all Versions of Selected Method'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   423
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   424
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   425
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   426
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   427
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   428
            label: 'Delete all Versions of all Selected Methods'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   429
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   430
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   431
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   432
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   433
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   434
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   435
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   436
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   437
            label: 'Compare with Current'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   438
            itemValue: doCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   439
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   440
         (MenuItem
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   441
            enabled: hasSingleSelection
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   442
            label: 'Copy to Clipboard'
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   443
            itemValue: doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   444
          )
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   445
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   446
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   447
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   448
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   449
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   450
            label: 'Make Change a Patch'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   451
            itemValue: doMakePatch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   452
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   453
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   454
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   455
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   456
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   457
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   458
    "Modified: / 21-11-2016 / 23:46:42 / cg"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   459
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   460
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   461
menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   462
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   463
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   464
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   465
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   466
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   467
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   468
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   469
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   470
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   471
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecFile)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   472
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   473
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   474
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   475
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   476
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   477
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   478
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   479
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   480
            label: 'Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   481
            itemValue: doCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   482
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   483
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   484
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   485
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   486
            label: 'Compress for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   487
            itemValue: doCompressClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   488
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   489
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   490
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   491
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   492
            label: 'Compress for Class && Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   493
            itemValue: doCompressSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   494
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   495
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   496
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   497
            label: 'Compare and Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   498
            itemValue: doCompareAndCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   499
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   500
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   501
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   502
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   503
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   504
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   505
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   506
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   507
            label: 'Fileout && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   508
            itemValue: doFileoutAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   509
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   510
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   511
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   512
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   513
            label: 'CheckIn && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   514
            itemValue: doCheckinAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   515
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   516
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   517
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   518
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   519
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   520
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   521
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   522
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   523
            label: 'Save In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   524
            itemValue: doSave
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   525
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   526
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   527
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   528
            label: 'Save to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   529
            itemValue: doSaveRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   530
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   531
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   532
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   533
            label: 'Save for Class to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   534
            itemValue: doSaveClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   535
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   536
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   537
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   538
            label: 'Save all for Class In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   539
            itemValue: doSaveClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   540
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   541
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   542
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   543
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   544
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   545
            label: 'Writeback ClassFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   546
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   547
            isVisible: editingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   548
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   549
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   550
            label: 'Writeback ChangeFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   551
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   552
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   553
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   554
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   555
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   556
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   557
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   558
            label: 'Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   559
            itemValue: doUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   560
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   561
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   562
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   563
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   564
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   565
            label: 'Exit'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   566
            itemValue: menuExit
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   567
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   568
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   569
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   570
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   571
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   572
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   573
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   574
menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   575
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   576
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   577
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   578
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   579
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   580
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   581
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   582
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   583
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   584
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecHelp)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   585
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   586
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   587
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   588
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   589
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   590
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   591
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   592
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   593
            label: 'ChangesBrowser Documentation'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   594
            itemValue: openHTMLDocument:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   595
            argument: 'tools/cbrowser/TOP.html'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   596
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   597
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   598
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   599
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   600
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   601
            label: 'About ChangesBrowser...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   602
            itemValue: openAboutThisApplication
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   603
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   604
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   605
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   606
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   607
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   608
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   609
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   610
menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   611
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   612
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   613
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   614
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   615
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   616
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   617
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   618
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   619
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   620
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSearch)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   621
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   622
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   623
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   624
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   625
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   626
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   627
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   628
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   629
            label: 'Class...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   630
            itemValue: findClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   631
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   632
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   633
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   634
            label: 'First for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   635
            itemValue: findFirstForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   636
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   637
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   638
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   639
            label: 'Previous for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   640
            itemValue: findPreviousForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   641
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   642
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   643
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   644
            label: 'Next for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   645
            itemValue: findNextForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   646
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   647
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   648
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   649
            label: 'Last for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   650
            itemValue: findLastForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   651
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   652
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   653
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   654
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   655
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   656
            label: 'Selector...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   657
            itemValue: findSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   658
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   659
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   660
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   661
            label: 'Previous for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   662
            itemValue: findPreviousForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   663
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   664
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   665
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   666
            label: 'Next for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   667
            itemValue: findNextForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   668
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   669
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   670
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   671
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   672
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   673
            label: 'String...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   674
            itemValue: findString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   675
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   676
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   677
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   678
            label: 'Previous with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   679
            itemValue: findPreviousForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   680
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   681
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   682
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   683
            label: 'Next with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   684
            itemValue: findNextForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   685
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   686
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   687
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   688
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   689
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   690
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   691
            label: 'Previous Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   692
            itemValue: findPreviousDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   693
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   694
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   695
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   696
            label: 'Next Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   697
            itemValue: findNextDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   698
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   699
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   700
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   701
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   702
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   703
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   704
            label: 'Previous Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   705
            itemValue: findPreviousSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   706
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   707
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   708
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   709
            label: 'Next Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   710
            itemValue: findNextSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   711
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   712
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   713
            label: 'Last Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   714
            itemValue: findLastSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   715
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   716
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   717
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   718
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   719
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   720
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   721
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   722
menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   723
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   724
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   725
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   726
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   727
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   728
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   729
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   730
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   731
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   732
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSettings)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   733
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   734
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   735
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   736
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   737
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   738
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   739
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   740
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   741
            label: 'Auto Compare'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   742
            indication: autoCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   743
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   744
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   745
            label: 'Autoload As Required'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   746
            indication: autoloadAsRequired
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   747
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   748
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   749
            label: 'Show Diffs'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   750
            indication: showingDiffs
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   751
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   752
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   753
            label: 'Auto Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   754
            indication: autoUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   755
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   756
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   757
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   758
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   759
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   760
            label: 'Add to ChangeSet when Applying'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   761
            indication: updateChangeSet
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   762
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   763
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   764
            label: 'Ignore Public/Private in Categories (Dolphin code)'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   765
            itemValue: ignorePublicPrivateCategories:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   766
            isVisible: false
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   767
            indication: ignorePublicPrivateCategories
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   768
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   769
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   770
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   771
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   772
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   773
            label: 'Apply into Package...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   774
            itemValue: setEnforcedPackage
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   775
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   776
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   777
            label: 'Apply into NameSpace...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   778
            itemValue: setEnforcedNameSpace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   779
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   780
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   781
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   782
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   783
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   784
            label: 'Settings...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   785
            itemValue: openSettingsDialog
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   786
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   787
         )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   788
        nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   789
        nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   790
      )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   791
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   792
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   793
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   794
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   795
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   796
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   797
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   798
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   799
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   800
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   801
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   802
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   803
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   804
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   805
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   806
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   807
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   808
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   809
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   810
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   811
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   812
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   813
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   814
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   815
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   816
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   817
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   818
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   819
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   820
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   821
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   822
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   823
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   824
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   825
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   826
            isVisible: canDeleteChanges
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   827
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   828
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   829
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   830
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   831
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   832
          )
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   833
         (MenuItem
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   834
            activeHelpKey: deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   835
            enabled: hasSelectionHolder
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   836
            isVisible: canDeleteChanges
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   837
            label: 'Delete for Class from Beginning'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   838
            itemValue: doDeleteClassFromBeginning
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   839
            translateLabel: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   840
            isButton: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   841
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassFromStart24x24Icon)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   842
          )
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   843
         (MenuItem
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   844
            activeHelpKey: deleteForClassToEnd
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   845
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   846
            isVisible: canDeleteChanges
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   847
            label: 'Delete for Class to End'
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   848
            itemValue: doDeleteClassRest
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   849
            translateLabel: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   850
            isButton: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   851
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassToEnd24x24Icon)
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   852
          )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   853
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   854
            label: '-'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   855
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   856
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   857
            activeHelpKey: deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   858
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   859
            isVisible: canDeleteChanges
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   860
            label: 'Delete all Versions of this Method'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   861
            itemValue: doDeleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   862
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   863
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   864
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethod24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   865
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   866
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   867
            activeHelpKey: deleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   868
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   869
            isVisible: canDeleteChanges
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   870
            label: 'Delete older Versions of this Method'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   871
            itemValue: doDeleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   872
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   873
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   874
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethodFromStart24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   875
          )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   876
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   877
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   878
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   879
      )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   880
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   881
    "Modified: / 07-07-2017 / 12:52:28 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   882
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   883
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   884
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   885
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   886
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   887
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   888
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   889
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   890
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   891
    (XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   892
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   893
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   894
	    self error:'Could not load XML package(s) from ''stx:goodies/xml/vw'''.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   895
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   896
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   897
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   898
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   899
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   900
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   901
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   902
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   903
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   904
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   905
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   906
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   907
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   908
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   909
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   910
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   911
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   912
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   913
readXMLChangesFromFile:changeFileName inBackground:inBackground
14011
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   914
    |set|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   915
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   916
    changeFileName asFilename readingFileDo:[:s|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   917
        set := self readXMLChangesFrom:s inBackground:false.
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   918
    ].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   919
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   920
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   921
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   922
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   923
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   924
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   925
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   926
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   927
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   928
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   929
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   930
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   931
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   932
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   933
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   934
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   935
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   936
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   937
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   938
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   939
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   940
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   941
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   942
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   943
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   944
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   945
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   946
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   947
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   948
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   949
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   950
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   951
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   952
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   953
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   954
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   955
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   956
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   957
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   958
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   959
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   960
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   961
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   962
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   963
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   964
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   965
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   966
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   967
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   968
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   969
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   970
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   971
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   972
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   973
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   974
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   975
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   976
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   977
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   978
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   979
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   980
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   981
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   982
canDeleteChanges
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   983
    "makes the delete buttons in the toolbar visible"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   984
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   985
    ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   986
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   987
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   988
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   989
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   990
        changeListSelectionHolder := nil asValue.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   991
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   992
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   993
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   994
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   995
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   996
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   997
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   998
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   999
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1000
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1001
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1002
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1003
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1004
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1005
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1006
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1007
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1008
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1009
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1010
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1011
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1012
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1013
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1014
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1015
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1016
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1017
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1018
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1019
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1020
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1021
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1022
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1023
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1024
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1025
hasSelection
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1026
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1027
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1028
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1029
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1030
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1031
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1032
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1033
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1034
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1035
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1036
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1037
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1038
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1039
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1040
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1041
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1042
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1043
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1044
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1045
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1046
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1047
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1048
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1049
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1050
leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1051
    "holds the string shown above the left codeView (defaults to: 'Current')"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1052
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1053
    ^ leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1054
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1055
    "Created: / 07-12-2017 / 12:28:31 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1056
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1057
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1058
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1059
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1060
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1061
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1062
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1063
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1064
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1065
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1066
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1067
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1068
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1069
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1070
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1071
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1072
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1073
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1074
rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1075
    "holds the string shown above the right codeView (defaults to: 'Change')"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1076
    
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1077
    ^ rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1078
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1079
    "Created: / 07-12-2017 / 12:28:37 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1080
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1081
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1082
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1083
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1084
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1085
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1086
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1087
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1088
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1089
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1090
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1091
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1092
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1093
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1094
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1095
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1096
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1097
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1098
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1099
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1100
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1101
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1102
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1103
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1104
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1105
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1106
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1107
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1108
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1109
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1110
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1111
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1112
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1113
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1114
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1115
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1116
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1117
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1118
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1119
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1120
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1121
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1122
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1123
    "sent by the compiler to ask if a changeLog entry should
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1124
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1125
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1126
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1127
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1128
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
  1129
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1130
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1131
correctableError:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1132
    "compiler notifies us of an error - this should really not happen since
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1133
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1134
     Show the bad change in the codeView and let codeView hilight the error;
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1135
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1136
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1137
    ShowWarningDialogs == true ifTrue:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1138
        self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1139
    ] ifFalse:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1140
        Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1141
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1142
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1143
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1144
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1145
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1146
    "compiler notifies us of a warning"
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1147
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1148
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1149
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1150
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1151
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1152
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1153
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1154
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1155
    "compiler notifies us of an error - this should really not happen since
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1156
     changes ought to be correct (did someone edit the changes file ??).
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1157
     Show the bad change in the codeView and let codeView hilight the error;
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1158
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1159
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1160
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1161
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1162
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1163
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1164
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1165
error:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1166
    "compiler notifies us of an error - this should really not happen since
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1167
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1168
     Show the bad change in the codeView and let codeView hilight the error"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1169
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1170
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1171
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1172
    (changeNrProcessed ~~ changeNrShown) ifTrue:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1173
        self changeSelection:changeNrProcessed
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1174
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1175
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  1176
    "if more than a single change is applied,
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1177
     ask the user if he wants to abort the whole sequence of operations..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1178
    multipleApply == true ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1179
        codeView highlightingErrorPosition:relPos to:relEndPos do:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1180
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1181
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1182
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1183
             start dialog - make certain cleanup is done
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1184
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1185
            action := OptionBox
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1186
                          request:aString
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1187
                          label:'Error'
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1188
                          image:(WarningBox iconBitmap)
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1189
                          buttonLabels:#('Cancel All' 'Skip this Change' " 'Shut up' " 'Continue')
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1190
                          values:#(abortAll skip "shutUp" continue)
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1191
                          default:#continue
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1192
                          onCancel:#abort.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1193
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1194
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1195
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1196
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1197
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1198
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1199
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1200
        action == #abortAll ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1201
            AbortAllOperationRequest raise.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1202
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1203
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1204
        action == #skip ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1205
            AbortOperationRequest raise.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1206
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1207
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1208
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1209
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1210
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1211
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1212
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1213
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1214
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1215
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1216
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1217
     hilight the error (relPos to relEndPos) and show a Box asking for continue/correct/abort;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1218
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1219
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1220
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1221
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1222
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1223
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1224
warning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1225
    "compiler notifies us of a warning - ignore it"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1226
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1227
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1228
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1229
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1230
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1231
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1232
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1233
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1234
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1235
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1236
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1237
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1238
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1239
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1240
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1241
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1242
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1243
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1244
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1245
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1246
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1247
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1248
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1249
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1250
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1251
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1252
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1253
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1254
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1255
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1256
    (key == #Delete) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1257
        self sensor shiftDown ifTrue:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1258
            self doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1259
        ] ifFalse:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1260
            self doDelete.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1261
        ].
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1262
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1263
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1264
    (key == #BackSpace) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1265
        self doDelete. "/ doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1266
        ^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1267
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1268
    (key == #Accept) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1269
        self doApply.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1270
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1271
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1272
    (key == #Find) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1273
        self findClass.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1274
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1275
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1276
    (key == #FindPrev) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1277
        self findPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1278
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1279
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1280
    (key == #FindNext) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1281
        self findNext.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1282
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1283
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1284
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1285
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1286
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1287
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1288
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1289
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1290
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1291
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1292
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1293
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1294
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1295
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1296
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1297
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1298
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1299
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1300
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1301
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1302
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1303
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1304
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1305
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1306
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1307
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1308
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1309
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1310
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1311
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1312
    self askIfChangesAreToBeWrittenBack.
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1313
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1314
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1315
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1316
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1317
    doCompare ifTrue:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1318
        self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1319
    ] ifFalse:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1320
        changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1321
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1322
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1323
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1324
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1325
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1326
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1327
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1328
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1329
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1330
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1331
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1332
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1333
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1334
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1335
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1336
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1337
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1338
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1339
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1340
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1341
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1342
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1343
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1344
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1345
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1346
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1347
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1348
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1349
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1350
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1351
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1352
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1353
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1354
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1355
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1356
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1357
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1358
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1359
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1360
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1361
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1362
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1363
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1364
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1365
                ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1366
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1367
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1368
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1369
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1370
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1371
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1372
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1373
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1374
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1375
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1376
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1377
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1378
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1379
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1380
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1381
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1382
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1383
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1384
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1385
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1386
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1387
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1388
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1389
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1390
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1391
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1392
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1393
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1394
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1395
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1396
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1397
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1398
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1399
                          ('Delete all for Classes'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1400
                          ('Delete all for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1401
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1402
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1403
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1404
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1405
                          ('Delete all for Class'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1406
                          ('Delete all for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1407
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1408
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1409
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1410
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1411
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1412
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1413
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1414
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1415
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1416
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1417
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1418
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1419
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1420
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1421
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1422
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1423
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1424
        items := items , #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1425
                      ('Fileout & Delete all for Class' doFileoutAndDeleteClassAll     )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1426
                      ('CheckIn & Delete all for Class' doCheckinAndDeleteClassAll     )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1427
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1428
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1429
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1430
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1431
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1432
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1433
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1434
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1435
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1436
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1437
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1438
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1439
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1440
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1441
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1442
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1443
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1444
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1445
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1446
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1447
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1448
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1449
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1450
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1451
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1452
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1453
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1454
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1455
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1456
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1457
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1458
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1459
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1460
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1461
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1462
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1463
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1464
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1465
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1466
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1467
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1468
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1469
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1470
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1471
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1472
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1473
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1474
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1475
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1476
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1477
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1478
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1479
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1480
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1481
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1482
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1483
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1484
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1485
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1486
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1487
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1488
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1489
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1490
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1491
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1492
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1493
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1494
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1495
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1496
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1497
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1498
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1499
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1500
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1501
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1502
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1503
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1504
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1505
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1506
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1507
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1508
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1509
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1510
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1511
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1512
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1513
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1514
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1515
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1516
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1517
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1518
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1519
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1520
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1521
initialize
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1522
    |panel infoLabel v upperFrame buttonPanel menuPanel mH toolbarMenu tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1523
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1524
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1525
    leftCodeLabelHolder := 'Current' asValue.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1526
    rightCodeLabelHolder := 'Change' asValue.    
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1527
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1528
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1529
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1530
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1531
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1532
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1533
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1534
    encodingIfKnown := nil.
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1535
    autoCompare := (DefaultAutoCompare ? false) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1536
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1537
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1538
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1539
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1540
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1541
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1542
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1543
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1544
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1545
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1546
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1547
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1548
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1549
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1550
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1551
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1552
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1553
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1554
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1555
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1556
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1557
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1558
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1559
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1560
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1561
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1562
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1563
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1564
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1565
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1566
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1567
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1568
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1569
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1570
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1571
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1572
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1573
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1574
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1575
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1576
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1577
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1578
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1579
        toolbarMenu menu:(self toolbarMenu).
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  1580
        toolbarMenu helpSpecProvider:self. "/ for helpTexts
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1581
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1582
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1583
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1584
        mH := mH + tmH + 1.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1585
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1586
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1587
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1588
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1589
    panel := VariableVerticalPanel in:self. 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1590
    "/ panel origin:(0.0 @ mH) corner:(1.0 @ 1.0)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1591
    panel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1592
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1593
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1594
                    topFraction:0.0 offset:mH
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1595
                    bottomFraction:1.0 offset:-30).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1596
    panel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1597
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1598
    infoLabel := Label in:self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1599
    infoLabel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1600
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1601
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1602
                    topFraction:1.0 offset:-28
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1603
                    bottomFraction:1.0 offset:-2).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1604
    infoLabel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1605
    infoLabel sizeFixed:true.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1606
    infoLabel level:-1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1607
    infoLabel adjust:#left.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1608
    infoLabel labelChannel:(infoHolder := '' asValue).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1609
    
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1610
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1611
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1612
        upperFrame := VariableHorizontalPanel origin:(0.0 @ 0.0) corner:(1.0 @ 0.3) in:panel.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1613
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1614
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1615
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1616
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1617
        v origin:(0.0 @ 0.0) corner:(0.75 @ 1.0).
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1618
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1619
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.3).
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1620
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1621
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1622
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1623
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1624
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1625
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1626
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1627
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1628
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1629
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1630
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1631
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1632
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1633
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1634
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1635
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1636
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1637
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1638
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1639
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1640
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1641
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1642
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1643
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1644
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1645
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1646
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1647
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1648
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1649
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1650
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1651
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1652
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1653
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1654
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1655
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1656
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1657
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1658
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1659
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1660
    v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1661
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1662
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1663
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1664
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1665
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1666
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1667
    lbl := Label label:leftCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1668
    lbl labelChannel:leftCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1669
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1670
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1671
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1672
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1673
                        bottomFraction:0.0 offset:20).
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1674
    lbl := Label label:rightCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1675
    lbl labelChannel:rightCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1676
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1677
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1678
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1679
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1680
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1681
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1682
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1683
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1684
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1685
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1686
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1687
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1688
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1689
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1690
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1691
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1692
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1693
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1694
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1695
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1696
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1697
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1698
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1699
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1700
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1701
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1702
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1703
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1704
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1705
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1706
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1707
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1708
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1709
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1710
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1711
    "Modified: / 07-12-2017 / 12:28:09 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1712
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1713
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1714
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1715
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1716
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1717
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1718
    changeListView action:[:lineNrOrCollection | self changeSelection:lineNrOrCollection].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1719
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1720
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1721
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1722
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1723
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1724
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1725
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1726
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1727
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1728
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1729
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1730
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1731
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1732
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1733
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1734
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1735
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1736
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1737
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1738
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1739
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1740
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1741
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1742
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1743
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1744
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1745
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1746
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1747
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1748
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1749
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1750
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1751
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1752
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1753
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1754
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1755
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1756
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1757
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1758
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1759
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1760
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1761
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1762
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1763
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1764
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1765
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1766
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1767
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1768
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1769
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1770
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1771
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1772
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1773
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1774
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1775
            box title:('The modified changelist has not been written back to the change file.\\Write change file before exiting ?') withCRs.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1776
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1777
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1778
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1779
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1780
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1781
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1782
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1783
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1784
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1785
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1786
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1787
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1788
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1789
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1790
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1791
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1792
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1793
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1794
doApply
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1795
    "user wants a change to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1796
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1797
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1798
        (self applyChange:changeNr) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1799
            ^ self "/ cancel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1800
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1801
        self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1802
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1803
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1804
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1805
doApplyAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1806
    "user wants all changes to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1807
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1808
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1809
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1810
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1811
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1812
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1813
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1814
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1815
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1816
        multipleApply := lastNr > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1817
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1818
        1 to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1819
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1820
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1821
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1822
        self autoSelectLast
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1823
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1824
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1825
    "Modified: 21.1.1997 / 22:26:30 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1826
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1827
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1828
doApplyClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1829
    "user wants all changes for this class from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1830
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1831
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1832
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1833
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1834
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1835
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1836
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1837
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1838
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1839
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1840
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1841
            multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1842
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1843
            1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1844
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1845
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1846
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1847
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1848
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1849
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1850
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1851
            self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1852
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1853
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1854
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1855
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1856
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1857
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1858
doApplyClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1859
    "user wants all changes for this class from changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1860
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1861
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1862
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1863
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1864
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1865
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1866
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1867
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1868
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1869
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1870
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1871
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1872
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1873
            multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1874
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1875
            changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1876
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1877
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1878
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1879
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1880
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1881
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1882
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1883
            self autoSelect:lastChange.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1884
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1885
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1886
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1887
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1888
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1889
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1890
doApplyFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1891
    "user wants all changes from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1892
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1893
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1894
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1895
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1896
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1897
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1898
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1899
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1900
        multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1901
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1902
        1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1903
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1904
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1905
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1906
        self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1907
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1908
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1909
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1910
doApplyRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1911
    "apply all changes from changeNr to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1912
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1913
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1914
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1915
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1916
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1917
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1918
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1919
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1920
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1921
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1922
        multipleApply := (lastNr - changeNr) > 1.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1923
        AbortAllOperationRequest handle:[:ex |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1924
            ex return
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1925
        ] do:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1926
            changeNr to:lastNr do:[:changeNr |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1927
                changeListView setSelection:changeNr.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1928
                self applyChange:changeNr
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1929
            ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1930
            self autoSelect:self numberOfChanges.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1931
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1932
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1933
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1934
    "Modified: 21.1.1997 / 22:25:29 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1935
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1936
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1937
doApplyToConflictOrEnd
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1938
    "apply all changes from changeNr to either a conflict (i.e. method exists)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1939
     or the end."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1940
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1941
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1942
        |lastNr "{ Class: SmallInteger }"|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1943
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1944
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1945
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1946
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1947
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1948
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1949
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1950
        multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1951
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1952
        changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1953
            | cls sel |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1954
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1955
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1956
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1957
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1958
            ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1959
                (cls includesSelector:sel) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1960
                    self autoSelect:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1961
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1962
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1963
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1964
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1965
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1966
        self autoSelect:self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1967
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1968
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1969
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1970
doBrowse
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1971
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1972
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1973
    self withSingleSelectedChangeDo:[:changeNr |
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1974
        |cls|
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1975
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1976
        cls := self classOfChange:changeNr.
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1977
        cls notNil ifTrue:[
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1978
            SystemBrowser default
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1979
                openInClass:cls
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1980
                selector:(self selectorOfMethodChange:changeNr)
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1981
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1982
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1983
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1984
    "Modified: / 01-09-2017 / 14:20:00 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1985
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1986
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1987
doBrowseImplementors
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1988
    "open an implementors-browser"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1989
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1990
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1991
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1992
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1993
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1994
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1995
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1996
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1997
                    request:'Selector to browse implementors of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  1998
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1999
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2000
        SystemBrowser default browseImplementorsMatching:selector.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2001
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2002
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2003
    "Modified (format): / 01-09-2017 / 14:20:06 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2004
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2005
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2006
doBrowseSenders
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2007
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2008
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2009
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2010
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2011
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2012
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2013
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2014
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2015
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2016
                    request:'Selector to browse senders of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2017
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2018
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2019
        SystemBrowser default browseAllCallsOn:selector asSymbol.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2020
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2021
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2022
    "Modified: / 01-09-2017 / 14:20:13 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2023
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2024
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2025
doCheckinAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2026
    "first checkin the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2027
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2028
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2029
    |classes answer logTitle checkinInfo|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2030
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2031
"/    self theSingleSelection isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2032
"/        ^ self information:'Only possible if a single change is selected.'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2033
"/    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2034
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2035
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2036
        classes := IdentitySet new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2037
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2038
        self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2039
            | className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2040
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2041
            className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2042
            className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2043
                class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2044
                class isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2045
                    self error:'oops - no class: ', className mayProceed:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2046
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2047
                class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2048
                    class := class theNonMetaclass.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2049
                    (classes includes:class) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2050
                        class isPrivate ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2051
                            (classes includes:class owningClass) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2052
                                answer := self confirmWithCancel:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2053
                                                                    bindWith:class owningClass name allBold) withCRs.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2054
                                answer isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2055
                                answer ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2056
                                    classes add:class owningClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2057
                                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2058
                            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2059
                        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2060
                            classes add:class
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2061
                        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2062
                    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2063
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2064
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2065
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2066
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2067
        classes size == 1 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2068
            logTitle := classes first name.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2069
        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2070
            logTitle := '%1 classes' bindWith:classes size.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2071
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2072
        checkinInfo := SourceCodeManagerUtilities default
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2073
                        getCheckinInfoFor:logTitle
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2074
                        initialAnswer:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2075
        checkinInfo isNil ifTrue:[^ self ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2076
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2077
        changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2078
        classes do:[:eachClass |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2079
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2080
                ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2081
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2082
                           from:1 to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2083
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2084
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2085
        self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2086
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2087
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2088
    "Modified: / 6.9.1995 / 17:11:16 / claus"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2089
    "Modified: / 17.11.2001 / 14:21:13 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2090
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2091
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2092
doCompare
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2093
    "compare change with current system version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2094
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2095
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2096
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2097
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2098
        self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2099
            self compareChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2100
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2101
        self newLabel:''
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2102
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2103
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2104
    "Modified: 24.2.1996 / 19:37:19 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2105
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2106
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2107
doCompareAndCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2108
    "remove all changes, which are equivalent to the current image version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2109
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2110
    |toDelete|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2111
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2112
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2113
    toDelete := OrderedCollection new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2114
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2115
        1 to:self numberOfChanges do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2116
            (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2117
                toDelete add:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2118
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2119
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2120
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2121
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2122
    toDelete reverseDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2123
        self silentDeleteChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2124
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2125
    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2126
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2127
     scroll back a bit, if we are left way behind the list
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2128
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2129
    changeListView firstLineShown > self numberOfChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2130
        changeListView makeLineVisible:self numberOfChanges
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2131
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2132
    self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2133
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2134
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2135
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2136
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2137
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2138
doCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2139
    "compress the change-set; this replaces multiple method-changes by the last
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2140
     (i.e. the most recent) change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2141
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2142
    self compressForClass:nil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2143
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2144
    "Modified: / 29.10.1997 / 01:03:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2145
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2146
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2147
doCompressClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2148
    "compress changes for the selected class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2149
     this replaces multiple method-changes by the last (i.e. the most recent) change."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2150
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2151
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2152
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2153
    self selectedClassNames do:[:classNameToCompress |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2154
        self compressForClass:classNameToCompress.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2155
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2156
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2157
    "Created: / 29.10.1997 / 01:05:16 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2158
    "Modified: / 19.11.2001 / 21:55:17 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2159
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2160
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2161
doCompressSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2162
    "compress changes for the selected class & selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2163
     this replaces multiple method-changes by the last (i.e. the most recent) change."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2164
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2165
    |classSelectorPairs|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2166
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2167
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2168
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2169
    classSelectorPairs := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2170
    self withSelectedChangesDo:[:changeNr |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2171
        | classNameToCompress selector |
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2172
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2173
        classNameToCompress := self realClassNameOfChange:changeNr.
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2174
        classNameToCompress notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2175
            selector := self selectorOfMethodChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2176
            selector notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2177
                classSelectorPairs add:(classNameToCompress -> selector).
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2178
            ]
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2179
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2180
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2181
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2182
    classSelectorPairs do:[:pair |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2183
        self compressForClass:(pair key) selector:(pair value).
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2184
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2185
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2186
    "Created: / 19.11.2001 / 21:50:59 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2187
    "Modified: / 19.11.2001 / 22:10:08 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2188
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2189
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2190
doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2191
    "user wants a change text to be copied to the clipboard"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2192
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2193
    |text|
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2194
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2195
    self withSingleSelectedChangeDo:[:changeNr |
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2196
        text := self sourceOfMethodChange:changeNr.
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2197
    ].
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2198
    text notEmptyOrNil ifTrue:[
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2199
        self window setClipboardText:text
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2200
    ]
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2201
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2202
    "Created: / 21-11-2016 / 23:38:11 / cg"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2203
!
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2204
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2205
doDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2206
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2207
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2208
    |rangeEnd rangeStart firstDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2209
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2210
    changeListView selection size <= 5 ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2211
        self withSelectedChangesReverseDo:[:changeNr |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2212
            self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2213
            self autoSelectOrEnd:changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2214
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2215
        self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2216
        ^ self
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2217
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2218
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2219
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2220
        rangeEnd isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2221
            rangeEnd := rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2222
        ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2223
            (changeNr = (rangeEnd + 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2224
                rangeEnd := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2225
            ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2226
                (changeNr = (rangeStart - 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2227
                    rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2228
                ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2229
                    self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2230
                    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2231
                    rangeStart := rangeEnd := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2232
                ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2233
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2234
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2235
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2236
    rangeStart notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2237
        self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2238
        firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2239
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2240
    self autoSelectOrEnd:firstDeleted.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2241
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2242
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2243
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2244
doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2245
    "delete all changes for classes with same namespace as currently selected change"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2246
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2247
    |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2248
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2249
    lastChangeNr := -1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2250
    namespacesToDelete := Set new.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2251
    self withSelectedChangesDo:[:changeNr |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2252
        |namespaceToDelete|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2253
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2254
        namespaceToDelete := self namespaceOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2255
        namespaceToDelete notNil ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2256
            namespacesToDelete add:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2257
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2258
        lastChangeNr := lastChangeNr max:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2259
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2260
    namespacesToDelete isEmpty ifTrue:[^ self].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2261
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2262
    overAllNumDeletedBefore := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2263
    changeListView setSelection:nil.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2264
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2265
    self withExecuteCursorDo:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2266
        namespacesToDelete do:[:namespaceToDelete |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2267
            |numDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2268
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2269
            self 
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2270
                silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2271
                from:lastChangeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2272
                to:(self numberOfChanges).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2273
            numDeletedBefore := self
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2274
                                   silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2275
                                   from:1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2276
                                   to:(lastChangeNr-1).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2277
            lastChangeNr := lastChangeNr - numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2278
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2279
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2280
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2281
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2282
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2283
    self autoSelectOrEnd:lastChangeNr.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2284
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2285
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2286
doDeleteAndSelectPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2287
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2288
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2289
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2290
        self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2291
        self autoSelectOrEnd:changeNr-1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2292
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2293
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2294
    "/mh - don't we need a 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2295
    "/  self setChangeList
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2296
    "/ here?
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2297
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2298
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2299
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2300
doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2301
    "delete all changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2302
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2303
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2304
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2305
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2306
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2307
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2308
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2309
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2310
        classNameToDelete := self classNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2311
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2312
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2313
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2314
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2315
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2316
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2317
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2318
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2319
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2320
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2321
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2322
            |numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2323
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2324
            self silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2325
                                   from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2326
                                     to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2327
            numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2328
                                   silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2329
                                   from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2330
                                   to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2331
            lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2332
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2333
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2334
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2335
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2336
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2337
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2338
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2339
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2340
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2341
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2342
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2343
doDeleteClassAndPrivateClassesAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2344
    "delete all changes with same class and private classes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2345
     as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2346
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2347
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2348
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2349
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2350
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2351
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2352
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2353
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2354
        classNameToDelete := self ownerClassNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2355
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2356
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2357
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2358
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2359
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2360
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2361
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2362
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2363
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2364
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2365
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2366
            | changeNr numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2367
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2368
            classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2369
                changeListView setSelection:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2370
                self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2371
                                       from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2372
                                         to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2373
                numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2374
                                       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2375
                                       from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2376
                                       to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2377
                lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2378
                overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2379
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2380
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2381
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2382
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2383
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2384
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2385
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2386
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2387
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2388
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2389
doDeleteClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2390
    "delete changes with same class as currently selected change from the beginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2391
     up to the selected change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2392
     Useful to get rid of obsolete changes before a fileout or checkin entry."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2393
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2394
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2395
	|classNameToDelete prevSelection numDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2396
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2397
	classNameToDelete := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2398
	classNameToDelete notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2399
	    prevSelection := changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2400
	    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2401
	    numDeleted := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2402
				silentDeleteChangesFor:classNameToDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2403
				from:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2404
				to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2405
	    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2406
	    self autoSelectOrEnd:(changeNr + 1 - numDeleted)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2407
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2408
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2409
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2410
    "Created: 13.12.1995 / 15:41:58 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2411
    "Modified: 25.5.1996 / 12:26:34 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2412
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2413
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2414
doDeleteClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2415
    "delete rest of changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2416
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2417
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2418
	| classNameToDelete |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2419
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2420
	classNameToDelete := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2421
	classNameToDelete notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2422
	    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2423
	    self silentDeleteChangesFor:classNameToDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2424
				   from:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2425
				     to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2426
	    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2427
	    self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2428
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2429
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2430
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2431
    "Modified: / 18.5.1998 / 14:25:07 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2432
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2433
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2434
doDeleteClassSelectorAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2435
    "delete all changes with same class and selector as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2436
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2437
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2438
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2439
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2440
    classNameSelectorPairsToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2441
    self withSelectedChangesDo:[:changeNr |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2442
        |className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2443
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2444
        className := self realClassNameOfChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2445
        selector := self selectorOfMethodChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2446
        selector notNil ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2447
            (className notNil and:[selector notNil]) ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2448
                classNameSelectorPairsToDelete add:(className -> selector).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2449
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2450
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2451
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2452
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2453
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2454
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2455
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2456
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2457
    self withExecuteCursorDo:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2458
        classNameSelectorPairsToDelete do:[:pair |
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2459
            |numDeletedBefore className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2460
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2461
            className := pair key.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2462
            selector  := pair value.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2463
            self silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2464
                                   from:lastChangeNr
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2465
                                     to:(self numberOfChanges).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2466
            numDeletedBefore := self
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2467
                                   silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2468
                                   from:1
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2469
                                   to:(lastChangeNr-1).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2470
            lastChangeNr := lastChangeNr - numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2471
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2472
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2473
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2474
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2475
    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2476
    self autoSelectOrEnd:lastChangeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2477
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2478
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2479
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2480
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2481
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2482
doDeleteClassSelectorOlder
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2483
    "delete older changes with same class and selector as currently selected change(s)"
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2484
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2485
    |classNameSelectorPairsToDelete upToPerClassAndSelector lastChangeNr overAllNumDeletedBefore|
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2486
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2487
    lastChangeNr := -1.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2488
    classNameSelectorPairsToDelete := Set new.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2489
    upToPerClassAndSelector := Dictionary new.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2490
    
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2491
    "/ collect info on what is to be deleted
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2492
    self withSelectedChangesDo:[:changeNr |
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2493
        |className selector|
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2494
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2495
        className := self realClassNameOfChange:changeNr.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2496
        selector := self selectorOfMethodChange:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2497
        selector notNil ifTrue:[
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2498
            (className notNil and:[selector notNil]) ifTrue:[
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2499
                classNameSelectorPairsToDelete add:(className -> selector).
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2500
                upToPerClassAndSelector at:(className -> selector) put:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2501
            ]
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2502
        ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2503
        lastChangeNr := lastChangeNr max:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2504
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2505
        
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2506
    overAllNumDeletedBefore := 0.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2507
    changeListView setSelection:nil.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2508
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2509
    self withExecuteCursorDo:[
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2510
        classNameSelectorPairsToDelete do:[:pair |
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2511
            |numDeletedBefore className selector lastToDelete|
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2512
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2513
            className := pair key.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2514
            selector  := pair value.
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2515
            lastToDelete := (upToPerClassAndSelector at:pair).
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2516
            
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2517
            numDeletedBefore := self
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2518
                                   silentDeleteChangesFor:className selector:selector
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2519
                                   from:1
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2520
                                   to:lastToDelete.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2521
            lastChangeNr := lastChangeNr - numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2522
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2523
        ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2524
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2525
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2526
    self setChangeList.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2527
    self autoSelectOrEnd:lastChangeNr
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2528
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2529
    "Modified: / 25-07-2017 / 10:57:31 / cg"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2530
!
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2531
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2532
doDeleteFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2533
    "delete all changes from 1 to the current"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2534
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2535
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2536
	self deleteChangesFrom:1 to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2537
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2538
	self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2539
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2540
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2541
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2542
doDeleteRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2543
    "delete all changes from current to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2544
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2545
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2546
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2547
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2548
	self autoSelectOrEnd:changeNr-1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2549
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2550
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2551
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2552
doFileoutAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2553
    "first fileOut the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2554
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2555
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2556
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2557
	| className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2558
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2559
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2560
	className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2561
	    class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2562
	    class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2563
		Class fileOutErrorSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2564
		    self warn:('fileout failed: ' , ex description).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2565
		] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2566
		    class fileOut.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2567
		    self doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2568
		].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2569
	    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2570
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2571
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2572
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2573
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2574
    "Modified: 6.9.1995 / 17:11:16 / claus"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2575
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2576
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2577
doMakePatch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2578
    "user wants a change to be made a patch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2579
     - copy it over to the patches file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2580
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2581
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2582
	self makeChangeAPatch:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2583
	self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2584
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2585
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2586
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2587
doMakePermanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2588
    "user wants a change to be made permanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2589
     - rewrite the source file where this change has to go"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2590
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2591
    |yesNoBox|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2592
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2593
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2594
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2595
    yesNoBox := YesNoBox new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2596
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2597
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2598
    yesNoBox okAction:[   |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2599
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2600
                          changeNr := self theSingleSelection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2601
                          changeNr notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2602
                              self makeChangePermanent:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2603
                              self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2604
                          ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2605
                      ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2606
    yesNoBox showAtPointer.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2607
    yesNoBox destroy
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2608
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2609
    "Modified: 7.1.1997 / 23:03:33 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2610
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2611
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2612
doSave
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2613
    "user wants a change to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2614
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2615
    |fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2616
13651
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2617
    fileName := Dialog
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2618
                    requestFileNameForSave:(resources string:'Append change to:')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2619
                    default:(lastSaveFileName ? '')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2620
                    ok:(resources string:'Append')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2621
                    abort:(resources string:'Abort')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2622
                    pattern:'*.chg'.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2623
    fileName isEmptyOrNil ifTrue:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2624
        ^ self
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2625
    ].
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2626
    lastSaveFileName := fileName.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2627
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2628
    self withWriteCursorDo:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2629
        self withSelectedChangesDo:[:changeNr |
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2630
            self appendChange:changeNr toFile:fileName.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2631
            self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2632
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2633
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2634
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2635
    "Modified: / 27-07-2012 / 09:46:14 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2636
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2637
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2638
doSaveClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2639
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2640
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2641
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2642
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2643
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2644
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2645
doSaveClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2646
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2647
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2648
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2649
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2650
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2651
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2652
doSaveClassFrom:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2653
    "user wants changes from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2654
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2655
    |changeNr classNameToSave|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2656
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2657
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2658
    classNameToSave := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2659
    classNameToSave notNil ifTrue:[
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2660
        self saveClass:classNameToSave from:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2661
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2662
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2663
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2664
doSaveClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2665
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2666
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2667
    |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2668
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2669
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2670
    self doSaveClassFrom:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2671
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2672
    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2673
    "/ self changeSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2674
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2675
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2676
doSaveRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2677
    "user wants changes from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2678
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2679
    |changeNr fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2680
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2681
    (changeNr := self theSingleSelection) isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2682
        ^ self information:(resources string:'Only possible if a single change is selected.').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2683
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2684
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2685
    fileName := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2686
                    requestFileNameForSave:(resources string:'Append changes to:')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2687
                    default:(lastSaveFileName ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2688
                    ok:(resources string:'Append')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2689
                    abort:(resources string:'Abort')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2690
                    pattern:'*.chg'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2691
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2692
    fileName notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2693
        lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2694
        self withWriteCursorDo:[
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2695
            changeNr to:(self numberOfChanges) do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2696
                changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2697
                (self appendChange:changeNr toFile:fileName) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2698
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2699
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2700
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2701
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2702
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2703
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2704
    "Modified: / 27-07-2012 / 09:46:09 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2705
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2706
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2707
doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2708
    "reread the changes-file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2709
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2710
    self readChangesFileInBackground:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2711
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2712
    realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2713
	self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2714
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2715
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2716
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2717
doWriteBack
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2718
    "write back the list onto the changes file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2719
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2720
    anyChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2721
        (self writeBackChanges) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2722
            realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2723
                self readChangesFile.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2724
                realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2725
                    self setChangeList
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2726
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2727
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2728
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2729
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2730
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2731
    "Modified: 5.9.1996 / 17:19:46 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2732
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2733
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2734
findClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2735
    "findClass menu action: let user enter a classes name, and select the next change for that class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2736
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2737
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2738
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2739
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2740
        current := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2741
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2742
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2743
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2744
        askForSearch:'Class to search for:'
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2745
        initialAnswer:(current ? lastSearchString)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2746
        thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2747
                            |thisClassName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2748
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2749
                            thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2750
                            thisClassName notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2751
                            and:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2752
                                (thisClassName sameAs: searchString)
13440
3414d47da4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13373
diff changeset
  2753
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName caseSensitive:false]]]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2754
                        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2755
        onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2756
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2757
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2758
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  2759
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2760
    "Modified: / 12-02-2017 / 11:31:47 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2761
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2762
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2763
findFirstForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2764
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2765
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2766
    self findNextForClassStartingAt:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2767
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2768
    "Created: / 20-11-2006 / 16:37:56 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2769
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2770
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2771
findFirstForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2772
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2773
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2774
    self findNextForClass:className startingAt:1
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2775
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2776
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2777
findLastForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2778
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2779
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2780
    self findPreviousForClassStartingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2781
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2782
    "Created: / 20-11-2006 / 16:39:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2783
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2784
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2785
findLastForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2786
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2787
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2788
    self findPreviousForClass:className startingAt:(self numberOfChanges)
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2789
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2790
    "Created: / 20-11-2006 / 16:39:15 / cg"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2791
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2792
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2793
findLastSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2794
    "findLastSnapshot menu action: select the last change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2795
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2796
    "/ lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2797
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2798
    self 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2799
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2800
        startingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2801
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2802
    "Created: / 06-10-2006 / 11:03:39 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2803
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2804
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2805
findNext
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2806
    "findNext menu action: select the next change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2807
     Searches for what the last search was for; i.e. either same class or same selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2808
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2809
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2810
	^ self findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2811
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2812
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2813
	^ self findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2814
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2815
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2816
	^ self findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2817
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2818
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2819
	^ self findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2820
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2821
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2822
    ^ self findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2823
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2824
    "Created: / 18.6.1998 / 22:15:00 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2825
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2826
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2827
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2828
findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2829
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2830
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2831
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2832
    self findNextForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2833
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2834
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2835
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2836
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2837
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2838
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2839
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2840
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2841
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2842
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2843
findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2844
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2845
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2846
    self findNextForClassStartingAt: changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2847
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2848
    "Modified: / 20-11-2006 / 16:37:49 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2849
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2850
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2851
findNextForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2852
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2853
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2854
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2855
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2856
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2857
        findNextForWhich:[:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2858
                |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2859
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2860
                thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2861
                (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2862
                or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2863
                    and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2864
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2865
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2866
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2867
findNextForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2868
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2869
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2870
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2871
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2872
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2873
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2874
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2875
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2876
    cls isNil ifTrue:[^ self].
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2877
    self findNextForClass:cls startingAt:startNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2878
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2879
    "Created: / 20-11-2006 / 16:37:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2880
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2881
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2882
findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2883
    "findNextForSelector menu action: select the next change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2884
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2885
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2886
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2887
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2888
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2889
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2890
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2891
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2892
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2893
    self findNextForWhich: [:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2894
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2895
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2896
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2897
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2898
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2899
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2900
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2901
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2902
findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2903
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2904
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2905
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2906
    self findNextWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2907
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2908
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2909
findNextForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2910
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2911
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2912
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2913
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2914
    "Modified: / 20-11-2006 / 16:34:23 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2915
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2916
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2917
findNextForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2918
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2919
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2920
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2921
        findNextOrPrevious:#next 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2922
        forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2923
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2924
    "Created: / 20-11-2006 / 16:34:06 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2925
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2926
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2927
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2928
    "helper: find and select the next or previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2929
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2930
    self withCursor:Cursor questionMark do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2931
        Object userInterruptSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2932
            self beep.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2933
            ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2934
        ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2935
            |increment nr lastNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2936
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2937
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2938
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2939
            nr := changeNrToStartSearch.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2940
            [ (direction == #previous and:[nr >= 1])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2941
              or:[ direction == #next and:[ nr <= lastNr]] 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2942
            ] whileTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2943
                (aBlock value:nr) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2944
                    changeListView setSelection:nr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2945
                    self changeSelection:nr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2946
                    ^ nr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2947
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2948
                nr := nr + increment.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2949
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2950
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2951
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2952
    self showNotFound.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2953
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2954
    ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2955
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2956
    "Created: / 08-03-2012 / 11:57:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2957
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2958
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2959
findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2960
    "findNextSnapshot menu action: select the next change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2961
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2962
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2963
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2964
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2965
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2966
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2967
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2968
findNextWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2969
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2970
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2971
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2972
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2973
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2974
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2975
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2976
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2977
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2978
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2979
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2980
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2981
    self findNextForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2982
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2983
            |s|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2984
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2985
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2986
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2987
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2988
                or:[ includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2989
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2990
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2991
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2992
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2993
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2994
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2995
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2996
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2997
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2998
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2999
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3000
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3001
findPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3002
    "findPrevious menu action: select the previous change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3003
     Searches for what the last search was for; i.e. either same class or same selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3004
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3005
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3006
	^ self findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3007
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3008
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3009
	^ self findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3010
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3011
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3012
	^ self findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3013
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3014
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3015
	^ self findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3016
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3017
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3018
    ^ self findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3019
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3020
    "Created: / 18.6.1998 / 22:15:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3021
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3022
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3023
findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3024
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3025
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3026
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3027
    self findPreviousForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3028
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3029
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3030
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3031
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3032
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3033
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3034
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3035
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3036
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3037
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3038
findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3039
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3040
12738
fcad7d2eec44 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12704
diff changeset
  3041
    self findPreviousForClassStartingAt:((changeNrShown ? 1) - 1)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3042
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3043
    "Modified: / 20-11-2006 / 16:39:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3044
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3045
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3046
findPreviousForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3047
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3048
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3049
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3050
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3051
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3052
        findPreviousForWhich:
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3053
            [:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3054
                    |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3055
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3056
                    thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3057
                    (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3058
                    or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3059
                        and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3060
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3061
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3062
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3063
findPreviousForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3064
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3065
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3066
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3067
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3068
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3069
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3070
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3071
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3072
    cls isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3073
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3074
    self findPreviousForClass:cls startingAt:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3075
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3076
    "Created: / 20-11-2006 / 16:38:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3077
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3078
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3079
findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3080
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3081
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3082
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3083
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3084
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3085
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3086
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3087
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3088
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3089
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3090
    self findPreviousForWhich:
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3091
	[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3092
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3093
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3094
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3095
		(thisSelector = sel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3096
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3097
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3098
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3099
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3100
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3101
findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3102
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3103
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3104
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3105
    self findPreviousWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3106
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3107
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3108
findPreviousForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3109
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3110
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3111
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3112
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3113
    "Modified: / 06-10-2006 / 11:01:38 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3114
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3115
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3116
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3117
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3118
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3119
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3120
        findNextOrPrevious:#previous 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3121
        forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3122
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3123
    "Created: / 06-10-2006 / 11:01:09 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3124
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3125
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3126
findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3127
    "findPreviousSnapshot menu action: select the previous change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3128
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3129
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3130
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3131
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3132
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3133
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3134
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3135
findPreviousWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3136
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3137
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3138
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3139
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3140
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3141
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3142
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3143
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3144
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3145
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3146
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3147
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3148
    self findPreviousForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3149
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3150
            |s |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3151
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3152
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3153
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3154
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3155
                or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3156
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3157
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3158
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3159
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3160
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3161
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3162
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3163
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3164
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3165
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3166
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3167
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3168
findSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3169
    "findSelector menu action: let user enter a selector, and select the next change for that selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3170
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3171
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3172
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3173
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3174
	current := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3175
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3176
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3177
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3178
	askForSearch:'Selector to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3179
	initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3180
	thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3181
			    |thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3182
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3183
			    thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3184
			    (thisSelector = searchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3185
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3186
			]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3187
	onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3188
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3189
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3190
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3191
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3192
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3193
findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3194
    |searchString directionHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3195
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3196
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3197
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3198
    searchString := codeView selection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3199
    searchString size == 0 ifTrue:[searchString := lastSearchString].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3200
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3201
    searchString := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3202
	askForSearchString:'String to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3203
	initialAnswer:(searchString ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3204
	directionInto:(directionHolder := ValueHolder new).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3205
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3206
    searchString size == 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3207
	^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3208
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3209
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3210
    directionHolder value == #backward ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3211
	self findPreviousWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3212
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3213
	self findNextWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3214
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3215
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3216
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3217
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3218
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3219
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3220
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3221
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3222
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3223
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  3224
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3225
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3226
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3227
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3228
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3229
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3230
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3231
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3232
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3233
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3234
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3235
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3236
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3237
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3238
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3239
openSettingsDialog
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3240
    |settingsList|
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3241
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3242
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3243
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3244
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3245
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3246
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3247
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3248
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3249
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3250
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3251
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3252
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3253
    SettingsDialog 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3254
        openWithList:settingsList 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3255
        label:(resources string:'Change Browser Settings').
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3256
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3257
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3258
setEnforcedNameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3259
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3260
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3261
    listOfKnownNameSpaces := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3262
    NameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3263
        allNameSpaces
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3264
            do:[:eachNameSpace |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3265
                listOfKnownNameSpaces add:eachNameSpace name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3266
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3267
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3268
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3269
    Dialog modifyingBoxWith:[:box |
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3270
        keepAsDefaultHolder := true asValue.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3271
        box verticalPanel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3272
            add:((CheckBox 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3273
                    label:(resources string:'Use this as default in the future')) 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3274
                    model:keepAsDefaultHolder).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3275
    ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3276
        nsName := Dialog
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3277
                request:(resources string:'When applying, new classes are created in nameSpace:')
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3278
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3279
                list:listOfKnownNameSpaces.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3280
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3281
    nsName isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3282
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3283
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3284
        applyInOriginalNameSpace value:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3285
        LastEnforcedNameSpace := enforcedNameSpace := nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3286
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3287
        applyInOriginalNameSpace value:false.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3288
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3289
        autoCompare value ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3290
            self doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3291
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3292
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3293
    KeepEnforcedNameSpace := keepAsDefaultHolder value.
11680
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3294
    codeView nameSpaceForDoits:enforcedNameSpace.
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3295
    diffView textViews do:[:each | each nameSpaceForDoits:enforcedNameSpace].
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3296
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3297
    "Modified: / 26-07-2012 / 23:06:23 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3298
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3299
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3300
setEnforcedPackage
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3301
    |pkg listOfKnownPackages|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3302
16207
2a88932c5bbf #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16092
diff changeset
  3303
    listOfKnownPackages := Smalltalk allPackageIDs.
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3304
"/    Smalltalk allClassesDo:[:eachClass |
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3305
"/                                |package|
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3306
"/
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3307
"/                                package := eachClass package.
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3308
"/                                package size > 0 ifTrue:[
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3309
"/                                    listOfKnownPackages add:package
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3310
"/                                ]
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3311
"/                           ].
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3312
    listOfKnownPackages := listOfKnownPackages asNewOrderedCollection sort.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3313
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3314
    pkg := Dialog
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3315
                request:'When applying, changes go into package:'
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3316
                initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3317
                list:listOfKnownPackages.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3318
    pkg size ~~ 0 ifTrue:[
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3319
        enforcedPackage := pkg
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3320
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3321
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3322
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3323
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3324
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3325
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3326
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3327
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3328
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3329
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3330
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3331
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3332
    self class autoSelectNext ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3333
	(changeNr <= self numberOfChanges) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3334
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3335
	    self changeSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3336
	    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3337
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3338
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3339
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3340
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3341
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3342
    "Modified: / 18.5.1998 / 14:26:43 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3343
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3344
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3345
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3346
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3347
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3348
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3349
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3350
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3351
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3352
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3353
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3354
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3355
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3356
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3357
    changeNr < last ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3358
	self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3359
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3360
	last == 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3361
	    last := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3362
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3363
	changeListView setSelection:last .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3364
	self changeSelection:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3365
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3366
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  3367
    "Modified: / 13.11.2001 / 13:00:45 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3368
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3369
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3370
beep
15136
3899cd488ab4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15116
diff changeset
  3371
    "output an audible beep or bell on my screen device"
3899cd488ab4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15116
diff changeset
  3372
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3373
    UserPreferences current beepInEditor ifTrue:[                
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3374
        super beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3375
    ]
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3376
!
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3377
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3378
changeChunkAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3379
    ^ (changeInfoList at:index) chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3380
    "/ ^ changeChunks at:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3381
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3382
    "Created: / 01-05-2016 / 18:24:28 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3383
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3384
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3385
changeClassNameAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3386
    ^ (changeInfoList at:index) className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3387
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3388
    "Created: / 01-05-2016 / 18:28:13 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3389
    "Modified: / 01-05-2016 / 19:32:42 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3390
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3391
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3392
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3393
    "check for and warn if a class is unloaded (helper for compare-change)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3394
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3395
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3396
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3397
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3398
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3399
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3400
    ].
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3401
    (classesNotToBeAutoloaded includes:#all) ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3402
        ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3403
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3404
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3405
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3406
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3407
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3408
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3409
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3410
    ] ifFalse:[
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3411
        answer := Dialog 
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3412
                confirmWithCancel:(resources
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3413
                    stringWithCRs:'%1 is an autoloaded class.\I can only compare the method''s source if it''s loaded first.\\Shall the class be loaded now ?'
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3414
                    with:cls name allBold)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3415
                labels:(resources array:#('Cancel' 'No for All' 'No' 'Yes'))
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3416
                values:#(nil #never false true)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3417
                default:4.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3418
        answer isNil ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3419
            "cancel the operation"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3420
            AbortAllOperationRequest raise.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3421
            "not reached"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3422
        ].
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3423
        answer == #never ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3424
            classesNotToBeAutoloaded add:#all.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3425
            ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3426
        ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3427
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3428
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3429
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3430
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3431
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3432
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3433
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3434
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3435
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3436
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3437
    ^ false.
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3438
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3439
    "Modified: / 13-02-2017 / 19:57:15 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3440
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3441
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3442
checkSingleSelectedChange
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3443
    "just a helper, check for a single selection"
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3444
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3445
    |changeNr|
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3446
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3447
    (changeNr := self theSingleSelection) isNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3448
        self information:'Only possible if a single change is selected.'.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3449
        AbortSignal raise.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3450
        ^ nil.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3451
    ].
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3452
    ^ changeNr
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3453
!
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3454
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3455
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3456
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3457
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3458
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3459
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3460
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3461
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3462
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3463
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3464
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3465
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3466
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3467
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3468
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3469
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3470
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3471
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3472
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3473
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3474
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3475
currentSourceForParseTree:parseTree
12845
c8300977f648 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 12825
diff changeset
  3476
    |selector thisClass method mClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3477
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3478
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3479
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3480
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3481
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3482
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3483
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3484
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3485
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3486
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3487
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3488
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3489
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3490
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3491
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3492
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3493
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3494
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3495
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3496
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3497
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3498
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3499
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3500
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3501
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3502
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3503
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3504
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3505
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3506
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3507
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3508
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3509
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3510
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3511
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3512
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3513
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3514
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3515
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3516
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3517
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3518
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3519
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3520
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3521
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3522
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3523
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3524
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3525
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3526
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3527
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3528
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3529
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3530
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3531
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3532
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3533
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3534
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3535
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3536
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3537
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3538
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3539
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3540
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3541
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3542
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3543
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3544
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3545
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3546
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3547
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3548
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3549
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3550
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3551
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3552
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3553
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3554
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3555
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3556
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3557
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3558
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3559
                    ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3560
                        ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3561
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3562
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3563
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3564
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3565
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3566
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3567
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3568
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3569
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3570
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3571
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3572
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3573
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3574
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3575
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3576
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3577
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3578
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3579
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3580
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3581
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3582
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3583
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3584
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3585
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3586
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3587
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3588
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3589
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3590
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3591
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3592
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3593
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3594
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3595
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3596
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3597
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3598
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3599
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3600
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3601
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3602
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3603
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3604
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3605
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3606
            ownerClass isNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3607
                ^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3608
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3609
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3610
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3611
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3612
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3613
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3614
            thisClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3615
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3616
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3617
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3618
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3619
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3620
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3621
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3622
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  3623
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3624
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3625
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3626
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3627
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3628
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3629
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3630
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3631
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3632
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3633
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3634
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3635
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3636
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3637
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3638
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3639
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3640
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3641
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3642
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3643
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3644
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3645
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3646
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3647
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3648
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3649
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3650
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3651
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3652
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3653
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3654
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3655
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3656
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3657
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3658
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3659
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3660
parseExpression:chunk
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3661
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3662
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3663
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3664
parseExpression:text inNameSpace:nameSpace
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3665
    |parser p|
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3666
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3667
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3668
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3669
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3670
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  3671
(text includesString:'§') ifTrue:[self halt].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3672
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3673
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3674
    parser := Parser for:(ReadStream on:text).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3675
    parser parserFlags allowQualifiedNames:true.
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3676
    parser parserFlags allowDollarInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3677
    parser parserFlags allowParagraphInIdentifier:true.
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3678
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3679
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3680
    ] do:[
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3681
        p := parser 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3682
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3683
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3684
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3685
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3686
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3687
    ].
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3688
    ^ p
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3689
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3690
    "Modified: / 21-11-2016 / 23:25:48 / cg"
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3691
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3692
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3693
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3694
    "made this a method for easy redefinition in subclasses"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3695
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3696
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3697
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3698
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3699
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3700
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3701
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3702
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3703
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3704
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3705
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3706
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3707
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3708
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3709
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3710
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3711
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3712
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3713
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3714
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3715
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3716
setChangeList
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3717
    "update the selection-list;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3718
     called after the changeList has been modified"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3719
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3720
    |headerList|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3721
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3722
    headerList := changeInfoList collect:[:info | info headerLine].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3723
    changeListView setList:headerList expandTabs:false redraw:false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3724
    changeListView invalidate.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3725
    self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3726
    
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3727
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3728
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3729
    "Modified: / 01-05-2016 / 19:27:35 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3730
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3731
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3732
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3733
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3734
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3735
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3736
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3737
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3738
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3739
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3740
showNotFound
14483
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3741
    self withCursor:(Cursor cross) do:[
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3742
        self beep.
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3743
        Delay waitForMilliseconds:300.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3744
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3745
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3746
    "Modified: / 29.4.1999 / 22:36:54 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3747
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3748
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3749
showNumberOfChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3750
    infoHolder value:(resources string:'%1 changes.' with:changeInfoList size).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3751
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3752
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3753
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3754
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3755
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3756
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3757
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3758
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3759
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3760
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3761
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3762
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3763
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3764
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3765
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3766
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3767
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3768
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3769
timeStampPrintStringOf:ts
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3770
    ^ ts printString
17838
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3771
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3772
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3773
     self basicNew timeStampPrintStringOf:(Timestamp now)
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3774
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3775
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3776
    "Modified (format): / 05-12-2017 / 15:08:48 / cg"
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3777
!
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3778
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3779
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3780
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3781
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3782
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3783
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3784
    "Modified: 25.5.1996 / 13:02:49 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3785
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3786
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3787
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3788
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3789
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3790
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3791
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3792
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3793
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3794
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3795
    "just a helper, check for a selected change and evaluate aBlock
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3796
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3797
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3798
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3799
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3800
    changeNrSelection := changeListView selection.
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3801
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3802
    "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3803
     ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3804
    multipleApply := changeNrSelection size > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3805
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3806
    changeListView multipleSelectOk ifFalse:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3807
        changeNrSelection notNil ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3808
            self withExecuteCursorDo:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3809
                aBlock value:changeNrSelection
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3810
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3811
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3812
    ] ifTrue:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3813
        changeNrSelection size > 0 ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3814
            self withExecuteCursorDo:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3815
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3816
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3817
                changeNumbers := changeNrSelection copy sort.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3818
                order == #reverse ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3819
                    changeNumbers reverse
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3820
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3821
                changeNumbers do:aBlock
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3822
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3823
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3824
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3825
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3826
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3827
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3828
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3829
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3830
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3831
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3832
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3833
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3834
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3835
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3836
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3837
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3838
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3839
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3840
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3841
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3842
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3843
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3844
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3845
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3846
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3847
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3848
    "return true, if a change is a followup change (i.e. a followup change
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3849
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3850
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3851
    ^ (changeInfoList at:changeNr) isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3852
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3853
    "Created: / 06-02-1998 / 13:03:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3854
    "Modified: / 01-05-2016 / 19:32:06 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3855
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3856
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3857
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3858
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3859
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3860
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3861
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3862
    (self classNameOfChange:changeNr) isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3863
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3864
         get the chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3865
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3866
        chunk := self changeChunkAt:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3867
        "mhmh - empty ??"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3868
        chunk notNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3869
            (chunk startsWith:'''---') ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3870
                words := chunk asCollectionOfWords.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3871
                words size > 2 ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3872
                    (words at:2) = 'snapshot' ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3873
                        ^ true
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3874
                    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3875
                ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3876
            ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3877
        ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3878
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3879
    ^ false
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3880
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3881
    "Modified: / 01-05-2016 / 18:25:25 / cg"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3882
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3883
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3884
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3885
    "mhmh - seems to always return the name of the nonMeta class - is this OK?"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3886
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3887
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3888
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3889
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3890
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3891
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3892
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3893
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3894
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3895
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3896
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3897
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3898
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3899
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3900
            recTree := recTree receiver
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3901
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3902
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3903
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3904
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3905
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3906
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3907
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3908
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3909
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3910
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3911
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3912
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3913
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3914
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3915
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3916
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3917
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3918
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3919
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3920
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3921
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3922
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3923
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3924
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3925
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3926
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3927
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3928
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3929
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3930
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3931
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3932
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3933
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3934
    sel := fullParseTree selector.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3935
    arg1Tree := fullParseTree arg1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  3936
    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3937
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3938
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3939
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3940
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3941
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3942
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3943
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3944
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3945
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3946
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3947
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3948
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3949
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3950
    "Created: / 08-03-2012 / 09:34:04 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3951
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3952
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3953
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3954
    "extrat the class name from a method-change, methodRemove or comment-change's
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3955
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3956
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3957
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3958
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3959
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3960
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3961
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3962
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3963
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3964
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3965
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3966
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3967
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3968
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3969
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3970
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3971
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3972
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3973
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3974
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3975
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3976
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3977
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3978
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3979
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3980
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3981
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3982
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3983
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3984
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3985
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3986
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3987
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3988
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3989
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3990
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3991
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3992
    |recTree arg1Tree|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3993
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3994
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3995
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3996
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3997
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3998
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3999
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4000
        arg1Tree := aParseTree arg1.
13663
497ca003a6dc class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13651
diff changeset
  4001
        (arg1Tree notNil and:[arg1Tree isVariable]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4002
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4003
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4004
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4005
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4006
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4007
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4008
    "Created: / 08-03-2012 / 09:36:59 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4009
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4010
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4011
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4012
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4013
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4014
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4015
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4016
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4017
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4018
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4019
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4020
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4021
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4022
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4023
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4024
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4025
            arg2Tree := aParseTree arg2.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4026
            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4027
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4028
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4029
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4030
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4031
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4032
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4033
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4034
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4035
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4036
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4037
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4038
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4039
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4040
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4041
     (for classChanges (i.e. xxx class), the non-metaClassName (i.e. xxx) is returned)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4042
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4043
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4044
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4045
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4046
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4047
    (name endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4048
        name := name copyButLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4049
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4050
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4051
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4052
    "Modified: / 5.11.2001 / 18:10:25 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4053
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4054
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4055
extractSelectorOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4056
    "return a method-changes selector, or nil if it's not a methodChange"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4057
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4058
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4059
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4060
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4061
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4062
        (self classNameOfChange:changeNr) notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4063
            chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4064
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4065
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4066
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4067
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4068
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4069
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4070
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4071
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4072
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4073
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4074
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4075
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4076
                sel := aParseTree arguments at:1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4077
                sel isLiteral ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4078
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4079
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4080
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4081
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4082
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4083
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4084
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4085
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4086
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4087
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4088
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4089
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4090
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4091
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4092
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4093
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4094
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4095
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4096
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4097
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4098
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4099
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4100
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4101
    "Created: / 24-11-1995 / 14:30:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4102
    "Modified: / 01-05-2016 / 18:25:39 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4103
    "Modified (comment): / 13-02-2017 / 19:57:20 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4104
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4105
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4106
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4107
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4108
     (for classChanges (i.e. xxx class), a string ending in ' class' is returned."
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4109
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4110
    |chunk aParseTree sel name prevMethodDefNr words oldDollarSetting|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4111
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4112
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4113
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4114
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4115
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4116
    name := self changeClassNameAt:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4117
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4118
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4119
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4120
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4121
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4122
    prevMethodDefNr := changeNr.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4123
    [ (changeInfoList at:prevMethodDefNr) isFollowupChange ] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4124
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4125
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4126
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4127
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4128
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4129
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4130
    chunk := self changeChunkAt:prevMethodDefNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4131
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4132
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4133
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4134
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4135
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4136
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4137
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4138
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4139
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4140
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4141
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4142
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4143
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4144
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4145
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4146
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4147
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4148
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4149
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4150
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4151
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4152
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4153
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4154
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4155
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4156
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4157
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4158
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4159
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4160
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4161
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4162
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4163
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4164
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4165
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4166
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  4167
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4168
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4169
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4170
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4171
        ^ nil        "seems strange ... (could be a comment)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4172
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4173
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4174
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4175
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4176
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4177
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4178
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4179
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4180
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4181
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4182
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4183
     is it a method-change, methodRemove or comment-change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4184
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4185
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4186
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4187
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4188
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4189
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4190
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4191
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4192
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4193
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4194
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4195
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4196
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4197
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4198
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4199
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4200
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  4201
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4202
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4203
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  4204
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4205
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4206
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4207
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4208
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4209
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4210
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4211
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4212
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4213
     is it a change in a class-description ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4214
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4215
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  4216
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4217
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4218
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4219
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4220
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4221
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4222
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4223
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4224
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4225
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4226
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4227
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4228
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4229
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4230
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4231
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4232
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4233
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4234
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4235
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4236
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4237
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4238
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4239
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4240
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4241
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4242
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4243
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4244
    "Modified: / 01-05-2016 / 19:29:14 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4245
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4246
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4247
namespaceOfChange:changeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4248
    "return the namespace of a change or nil"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4249
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4250
    |className namespace idx|
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4251
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4252
    className := self classNameOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4253
    className isNil ifTrue:[ ^ nil ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4254
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4255
    idx := className indexOfSubCollection:'::'.
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4256
    idx == 0 ifTrue:[ ^ nil ].
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4257
    namespace := className copyTo:idx-1.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4258
    ^  namespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4259
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4260
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4261
numberOfChanges
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4262
    ^ changeInfoList size
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4263
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4264
    "Created: / 03-12-1995 / 18:15:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4265
    "Modified: / 01-05-2016 / 19:24:05 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4266
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4267
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4268
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4269
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4270
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4271
     for a private class, this is the name of the owning class"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4272
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  4273
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4274
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4275
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4276
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4277
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4278
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4279
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4280
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4281
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4282
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4283
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4284
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4285
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4286
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4287
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4288
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4289
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4290
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4291
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4292
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4293
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4294
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4295
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4296
"/        ].
13851
6a1a69cacb7b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
  4297
"/        ^ name copyButLast:6
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4298
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4299
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4300
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4301
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4302
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4303
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4304
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4305
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4306
     - since parsing ascii methods is slow, keep result cached in
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4307
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4308
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4309
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4310
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4311
    name := self changeClassNameAt:changeNr.
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4312
    name isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4313
        name := self fullClassNameOfChange:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4314
        name isNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4315
            (changeInfoList at:changeNr) className:#nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4316
        ].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4317
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4318
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4319
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4320
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4321
    "Created: / 05-11-2001 / 18:09:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4322
    "Modified: / 01-05-2016 / 19:24:53 / cg"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4323
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4324
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4325
selectorOfMethodChange:changeNr
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4326
    "return a method-changes selector, 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4327
     or nil if it's not a methodChange"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4328
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4329
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4330
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4331
    changeInfoList size >= changeNr ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4332
        sel := (changeInfoList at:changeNr) selector.
15652
788f4c9d0b07 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15450
diff changeset
  4333
        sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4334
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4335
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4336
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4337
    sel notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4338
        (changeInfoList at:changeNr) selector:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4339
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4340
    ^ sel
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4341
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4342
    "Modified: / 01-05-2016 / 19:26:21 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4343
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4344
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4345
sourceOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4346
    "return a method-changes source code, or nil if it's not a methodChange."
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4347
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4348
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4349
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4350
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4351
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4352
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4353
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4354
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4355
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4356
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4357
        chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4358
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4359
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4360
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4361
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4362
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4363
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4364
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4365
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4366
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4367
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4368
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4369
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4370
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4371
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4372
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4373
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4374
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4375
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4376
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4377
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4378
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4379
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4380
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4381
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4382
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4383
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4384
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4385
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4386
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4387
    "Created: / 05-09-1996 / 17:11:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4388
    "Modified: / 01-05-2016 / 18:25:53 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4389
    "Modified (comment): / 13-02-2017 / 19:57:25 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4390
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4391
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4392
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4393
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4394
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4395
    |aStream encoding|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4396
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4397
    (changeNr between:1 and:changeInfoList size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4398
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4399
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4400
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4401
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4402
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4403
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4404
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4405
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4406
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4407
        aStream := EncodedStream stream:aStream encoding:encodingIfKnown.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4408
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4409
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4410
    aStream position:((changeInfoList at:changeNr) position)-1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4411
    ^ aStream
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4412
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4413
    "Modified: / 01-05-2016 / 19:24:17 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4414
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4415
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4416
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4417
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4418
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4419
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4420
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4421
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4422
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4423
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4424
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4425
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4426
    "check if the changeFile has been modified since the last check;
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4427
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4428
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4429
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4430
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4431
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4432
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4433
    (info := f info) isNil ifTrue:[
16092
mawalch
parents: 16022
diff changeset
  4434
        self newLabel:'(unaccessible)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4435
    ] ifFalse:[
16092
mawalch
parents: 16022
diff changeset
  4436
        (info modificationTime) > changeFileTimestamp ifTrue:[
mawalch
parents: 16022
diff changeset
  4437
            self newLabel:'(outdated)'.
mawalch
parents: 16022
diff changeset
  4438
            autoUpdate value ifTrue:[
mawalch
parents: 16022
diff changeset
  4439
                self doUpdate
mawalch
parents: 16022
diff changeset
  4440
            ]
mawalch
parents: 16022
diff changeset
  4441
        ] ifFalse:[
mawalch
parents: 16022
diff changeset
  4442
            self newLabel:''
mawalch
parents: 16022
diff changeset
  4443
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4444
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4445
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4446
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4447
    "Created: 8.9.1995 / 19:30:19 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4448
    "Modified: 8.9.1995 / 19:38:18 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4449
    "Modified: 1.11.1996 / 20:22:56 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4450
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4451
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4452
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4453
    "read the changes file, create a list of header-lines (changeChunks)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4454
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4455
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4456
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4457
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4458
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4459
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4460
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4461
    "read the changes file, create a list of header-lines (changeChunks)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4462
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4463
     Starting with 2.10.3, the entries are multi-col entries;
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4464
     the cols are:
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4465
        1   delta (only if comparing)
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4466
                '+' -> new method (w.r.t. current state)
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4467
                '-' -> removed method (w.r.t. current state)
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4468
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4469
                '=' -> change is the same as current methods source
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4470
                '~' -> change is almost the same as current methods source
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4471
        2   class/selector
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4472
        3   type of change
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4473
                doit
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4474
                method
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4475
                category change
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4476
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4477
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4478
     since comparing slows down startup time, it is now disabled by
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4479
     default and can be enabled via a toggle."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4480
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4481
    |inStream i f askedForEditingClassSource myProcess myPriority myPrioRange|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4482
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4483
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  4484
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4485
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4486
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4487
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4488
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4489
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4490
    (self class isXMLFile:changeFileName) ifTrue:[
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4491
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4492
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4493
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4494
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  4495
    f exists ifFalse:[^ self].
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4496
    inStream := EncodedStream decodedStreamFor:(f readStream).
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  4497
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4498
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  4499
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  4500
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4501
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4502
    self withReadCursorDo:[
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4503
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4504
         this is a time consuming operation (especially, if reading an
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4505
         NFS-mounted directory; therefore lower my priority ...
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4506
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4507
        inBackground ifTrue:[
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4508
            myProcess := Processor activeProcess.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4509
            myPriority := myProcess priority.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4510
            myPrioRange := myProcess priorityRange.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4511
            myProcess priorityRange:(Processor userBackgroundPriority to:Processor activePriority).
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4512
        ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4513
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4514
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4515
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4516
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4517
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  4518
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4519
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4520
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4521
            reader autoCompare:autoCompare.
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4522
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4523
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4524
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4525
            reader noColoring:(NoColoring == true).
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4526
            
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4527
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4528
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4529
            editingClassSource := reader thisIsAClassSource.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4530
            changeInfoList := reader changeInfo.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4531
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4532
            self showNumberOfChanges.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4533
            anyChanges := false.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4534
        ] ensure:[
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4535
            inStream close.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4536
            inBackground ifTrue:[
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4537
                myProcess priority:myPriority.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4538
                myProcess priorityRange:myPrioRange.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4539
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4540
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4541
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4542
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4543
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4544
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4545
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4546
    "Modified: / 01-05-2016 / 19:13:09 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4547
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4548
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4549
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4550
    "write back the changes file. To avoid problems when the disk is full
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4551
     or a crash occurs while writing (well, or someone kills us),
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4552
     first write the stuff to a new temporary file. If this works ok,
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4553
     rename the old change-file to a .bak file and finally rename the
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4554
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4555
     That way, if anything happens, either the original file is left unchanged,
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4556
     or we have at least a backup of the previous change file."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4557
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4558
    |inFilename inStream outStream stamp encoding tempFilename|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4559
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4560
    editingClassSource ifTrue:[
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4561
        (self confirm:'You are editing a classes sourceFile (not a changeFile) !!\\Are you certain, you want to overwrite it ?' withCRs)
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4562
        ifFalse:[
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4563
            ^ false
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4564
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4565
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4566
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4567
    inFilename := changeFileName asFilename.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4568
    [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4569
        inStream := inFilename readStream.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4570
    ] on:FileStream openErrorSignal do:[:ex|
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4571
        self warn:'Cannot open old changesFile.'.
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4572
        ^ false
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4573
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4574
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4575
        [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4576
            outStream := FileStream newTemporaryIn:inFilename directory.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4577
            tempFilename := outStream fileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4578
        ] on:FileStream openErrorSignal do:[:ex|
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4579
            self warn:'Cannot create temp file in current directory.'.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4580
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4581
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4582
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4583
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4584
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4585
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4586
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4587
        encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4588
            inStream := EncodedStream stream:inStream encoding:encoding.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4589
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4590
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  4591
        self withWriteCursorDo:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4592
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4593
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4594
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4595
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4596
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4597
                outStream close.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4598
                tempFilename remove.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4599
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4600
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4601
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4602
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4603
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4604
                1 to:nChanges do:[:index |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4605
                    inStream position:((changeInfoList at:index) position)-1.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4606
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4607
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4608
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4609
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4610
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4611
                        (stamp := (changeInfoList at:index) timestamp) notNil ifTrue:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4612
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4613
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4614
                        ].
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4615
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4616
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4617
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4618
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4619
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4620
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4621
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4622
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4623
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4624
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4625
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4626
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4627
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4628
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4629
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4630
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4631
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4632
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4633
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4634
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4635
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4636
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4637
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4638
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4639
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4640
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4641
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4642
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4643
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4644
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4645
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4646
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4647
                    ]
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4648
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4649
                outStream syncData; close.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4650
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4651
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4652
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4653
            inFilename renameTo:inFilename asBackupFilename.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4654
            tempFilename renameTo:changeFileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4655
            anyChanges := false
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4656
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4657
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4658
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4659
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4660
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4661
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4662
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4663
    "Modified: / 01-05-2016 / 19:30:34 / cg"
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4664
    "Modified: / 09-02-2017 / 13:30:57 / stefan"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4665
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4666
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4667
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4668
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4669
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4670
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4671
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4672
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4673
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4674
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4675
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4676
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4677
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4678
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4679
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4680
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4681
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4682
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4683
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4684
        sawExcla := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4685
        chunk := self changeChunkAt:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4686
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4687
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4688
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4689
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4690
    chunk withoutSeparators isEmpty ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4691
        self error:'Empty chunk - should not happen' mayProceed:true.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4692
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4693
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4694
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4695
    fileName := aFileNameOrFileNameString asFilename.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4696
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4697
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4698
        outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4699
    ] on:FileStream openErrorSignal do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4700
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4701
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4702
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4703
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4704
    outStream fileSize = 0 ifTrue:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4705
        encoding := #utf8.
15090
27f730f4fd5b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15087
diff changeset
  4706
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4707
    ] ifFalse:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4708
        encoding := CharacterEncoder guessEncodingOfStream:outStream.
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4709
    ].
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4710
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4711
    encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4712
        outStream := EncodedStream stream:outStream encoding:encoding.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4713
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4714
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4715
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4716
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4717
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4718
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4719
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4720
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4721
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4722
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4723
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4724
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4725
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4726
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4727
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4728
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4729
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4730
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4731
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4732
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4733
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4734
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4735
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4736
    "Modified: / 01-05-2016 / 18:25:00 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4737
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4738
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4739
applyChange:changeNr
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4740
    "fileIn a change.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4741
     Answer true, if everything went ok."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4742
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4743
    |aStream applyAction nameSpace className changeClass ownerName ownerClass reader doItChunk methodsForChunk pkg
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4744
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4745
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4746
    aStream := self streamForChange:changeNr.
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4747
    aStream isNil ifTrue:[^ false].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4748
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4749
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4750
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4751
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4752
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4753
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4754
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4755
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4756
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4757
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4758
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4759
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4760
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4761
            "load unloaded class. Otherwise a class definition change
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4762
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4763
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4764
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4765
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4766
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4767
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4768
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4769
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4770
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4771
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4772
            AbortOperationRequest handle:[:ex |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4773
                "catch the abort of a single apply here.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4774
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4775
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4776
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4777
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4778
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4779
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4780
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4781
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4782
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4783
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4784
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4785
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4786
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4787
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4788
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4789
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4790
                            ] do:[
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4791
                                |skip|
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4792
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4793
                                skip := false.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4794
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4795
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4796
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4797
                                    methodsForChunk := self changeChunkAt:changeNr.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4798
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4799
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4800
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4801
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4802
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4803
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4804
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4805
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4806
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4807
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4808
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4809
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4810
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4811
                                        orgClassName := className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4812
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4813
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4814
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4815
                                            (ownerName endsWith:$:) ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4816
                                                ownerName := ownerName copyButLast:1.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4817
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4818
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4819
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4820
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4821
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4822
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4823
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4824
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4825
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4826
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4827
                                        changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4828
                                            changeClass := Smalltalk at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4829
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4830
                                        [changeClass isNil] whileTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4831
                                            (NameSpace allNameSpaces
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  4832
                                                contains:[:ns | (nsClass := (ns at:className asSymbol)) notNil])
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4833
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4834
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4835
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4836
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4837
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4838
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4839
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4840
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4841
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4842
                                            skip := false.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4843
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4844
                                            Dialog modifyingBoxWith:[:box |
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4845
                                                self halt.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4846
                                                box 
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4847
                                                    addButton:(Button label:'Skip' action:[skip := true. box hide])
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4848
                                                    after:box noButton
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4849
                                            ] do:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4850
                                                className := Dialog
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4851
                                                            request:'No class ''' , className , ''' for change. Add to which class? (enter empty string to skip this change)'
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4852
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4853
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4854
                                            skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4855
                                                className isNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4856
                                                    AbortAllOperationRequest raise.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4857
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4858
                                                className isEmpty ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4859
                                                    ^ false
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4860
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4861
                                                alternativeClass := Smalltalk classNamed:className.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4862
                                                alternativeClass notNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4863
                                                    changeClass := alternativeClass
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4864
                                                ]
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4865
                                            ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4866
                                        ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4867
                                        skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4868
                                            methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4869
                                            methodsForChunk := changeClass name , methodsForChunk.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4870
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4871
                                    ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4872
                                    skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4873
                                        reader := Compiler evaluate:methodsForChunk notifying:self.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4874
                                        reader fileInFrom:aStream notifying:self passChunk:false single:true.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4875
                                    ]                        
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4876
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4877
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4878
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4879
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4880
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4881
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4882
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4883
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4884
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4885
    "/
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  4886
    "/ if I am showing the changes file, don't update it
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4887
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4888
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4889
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4890
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4891
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4892
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4893
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4894
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4895
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4896
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4897
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4898
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4899
    "Modified: / 01-05-2016 / 18:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4900
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4901
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4902
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4903
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4904
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4905
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4906
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4907
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4908
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4909
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4910
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4911
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4912
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4913
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4914
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4915
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4916
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  4917
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4918
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4919
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4920
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4921
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4922
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4923
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4924
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4925
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4926
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4927
compareChange:changeNr
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4928
    "compare a change with the current (in-image) version; show the result of the compare (as dialog)"
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4929
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4930
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4931
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4932
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4933
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4934
    "compare a change with current version.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4935
     Return the result of the compare (same -> true, different -> false, uncomparable -> nil).
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4936
     If doShowResult is true, the outcome is shown in a dialog/diffViewer."
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4937
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4938
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource outcome showDiff d selector isLoaded beep superClass thisClassSym varsHere varsInChange addedVars removedVars
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4939
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4940
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4941
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4942
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4943
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  4944
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  4945
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  4946
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4947
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4948
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4949
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4950
        chunk := self changeChunkAt:changeNr.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4951
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4952
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4953
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4954
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4955
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  4956
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4957
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4958
        outcome := 'cannot compare this change\\(i.e. this is not a method change).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4959
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4960
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4961
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4962
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4963
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4964
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4965
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4966
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4967
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4968
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4969
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4970
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4971
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4972
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4973
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4974
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4975
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4976
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4977
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4978
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4979
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4980
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4981
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4982
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4983
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4984
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4985
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4986
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4987
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4988
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4989
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4990
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4991
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4992
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4993
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4994
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4995
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4996
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4997
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4998
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4999
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5000
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5001
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5002
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5003
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5004
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5005
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5006
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5007
                        (selector endsWith:':privateIn:') ifTrue:[
11475
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5008
                            Parser undefinedVariableError catch:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5009
                                ownerClass := (parseTree arguments at:5) evaluate.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5010
                                ownerClass isBehavior ifTrue:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5011
                                    thisClass := ownerClass privateClassesAt:thisClassSym.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5012
                                ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5013
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5014
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5015
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5016
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5017
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5018
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5019
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5020
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5021
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5022
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5023
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5024
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5025
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5026
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5027
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5028
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5029
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5030
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5031
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5032
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5033
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5034
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5035
                                            ((thisClass sharedPoolNames size == 0) and:[(parseTree arguments at:4) evaluate = '']) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5036
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5037
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5038
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5039
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5040
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5041
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5042
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5043
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5044
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5045
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5046
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5047
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5048
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5049
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5050
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5051
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5052
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5053
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5054
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5055
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5056
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5057
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5058
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5059
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5060
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5061
                                        isSame := false.
12825
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5062
                                        addedVars := varsInChange reject:[:eachVar | (varsHere includes:eachVar)].
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5063
                                        removedVars := varsHere reject:[:eachVar | (varsInChange includes:eachVar)].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5064
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5065
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5066
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5067
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5068
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5069
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5070
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5071
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5072
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5073
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5074
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5075
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5076
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5077
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5078
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5079
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5080
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5081
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5082
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5083
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5084
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5085
    ] ifTrue:[
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5086
        Class nameSpaceQuerySignal 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5087
            answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5088
            do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5089
                parseTree := self parseExpression:chunk.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5090
            ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5091
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5092
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5093
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5094
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5095
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5096
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5097
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5098
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5099
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5100
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5101
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5102
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5103
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5104
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5105
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5106
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5107
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5108
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5109
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5110
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5111
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5112
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5113
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5114
                thisClass notNil ifTrue:[
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5115
                (thisClass isKindOf:UndefinedVariable) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5116
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5117
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5118
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5119
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5120
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5121
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5122
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5123
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
6820
4e8815b9e661 Do not autoload class when comparing changes.
Stefan Vogel <sv@exept.de>
parents: 6682
diff changeset
  5124
                        owner := Smalltalk loadedClassNamed:ownerName.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5125
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5126
                            self checkClassIsLoaded:owner.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5127
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5128
                    ].
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5129
                    thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5130
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5131
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5132
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5133
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5134
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5135
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5136
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5137
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5138
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5139
                            cat := parseTree arg1 evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5140
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5141
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5142
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5143
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5144
                    isSame := self 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5145
                                compareMethodSource:newSource 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5146
                                withVersionInClass:thisClass 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5147
                                into:[:outcomeResult :beepResult :oldSourceResult| 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5148
                                    outcome := outcomeResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5149
                                    beep := beepResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5150
                                    oldSource := oldSourceResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5151
                                ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5152
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5153
                    isSame isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5154
                        showDiff := false.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5155
                    ] ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5156
                        showDiff := isSame not.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5157
                    ].
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5158
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5159
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5160
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  5161
                            d := DiffCodeView
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5162
                                    openOn:oldSource label:(resources string:'Current version (in image)')
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5163
                                    and:newSource label:(resources string:'Change version').
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5164
                            d label:'method differences'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5165
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5166
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5167
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5168
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5169
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5170
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5171
                ]
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5172
            ]] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5173
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5174
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5175
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5176
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5177
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5178
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5179
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5180
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5181
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5182
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5183
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5184
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5185
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5186
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5187
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5188
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5189
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5190
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5191
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5192
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5193
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5194
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5195
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5196
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5197
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5198
    "Modified: / 01-05-2016 / 18:25:32 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5199
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5200
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5201
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5202
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5203
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5204
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5205
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5206
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5207
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5208
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5209
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5210
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5211
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5212
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5213
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5214
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5215
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5216
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5217
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5218
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5219
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5220
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5221
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5222
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5223
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5224
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5225
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5226
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5227
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5228
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5229
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5230
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5231
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5232
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5233
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5234
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5235
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5236
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5237
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5238
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5239
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5240
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5241
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5242
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5243
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5244
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5245
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5246
compareMethodSource:newSource withVersionInClass:thisClass into:aThreeArgBlock
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5247
    "returns true/false/nil if same,different,undecided;
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5248
     also provides a message and a beep-boolean via the passed in block"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5249
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5250
    <ignore: RBReturnsBooleanAndOtherRule rationale: 'done by purpose' author: 'cg'>
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5251
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5252
    |parser sel oldMethod oldSource outcome t1 t2 isLoaded|
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5253
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5254
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5255
    do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5256
        parser := Parser parseMethod:newSource in:thisClass.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5257
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5258
    (parser isNil or:[parser == #Error]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5259
        outcome := 'Change is unparsable (parse error).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5260
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5261
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5262
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5263
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5264
    sel := parser selector.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5265
    oldMethod := thisClass compiledMethodAt:sel.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5266
    oldMethod isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5267
        (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5268
            outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5269
        ] ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5270
            outcome := 'Method does not exist.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5271
        ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5272
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5273
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5274
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5275
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5276
    oldSource := oldMethod source.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5277
    oldSource isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5278
        outcome := 'No source for compare.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5279
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5280
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5281
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5282
    (oldSource = newSource) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5283
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5284
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5285
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5286
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5287
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5288
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5289
    "/ compare for tabulator <-> space changes
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5290
    "/ before showing diff ...
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5291
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5292
    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5293
    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5294
    t1 = t2 ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5295
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5296
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5297
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5298
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5299
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5300
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5301
    "/ check if only historyLine diffs
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5302
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5303
    (HistoryManager notNil
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5304
    and:[HistoryManager isActive]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5305
        (HistoryManager withoutHistoryLines:newSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5306
        =
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5307
        (HistoryManager withoutHistoryLines:oldSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5308
        ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5309
            outcome := 'Same source (history only)'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5310
            aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5311
            ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5312
        ]
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5313
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5314
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5315
    outcome := 'Source changed.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5316
    aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5317
    ^ false.
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5318
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5319
    "Modified: / 16-07-2017 / 13:32:05 / cg"
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5320
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5321
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5322
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5323
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5324
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5325
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5326
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5327
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5328
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5329
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5330
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5331
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5332
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5333
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5334
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5335
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5336
                    ^ false -> ('Package is different (''<1p>'' vs. ''<2p>'')' expandMacrosWith:method package with:parseTree arg1 evaluate).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5337
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5338
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5339
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5340
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5341
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5342
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5343
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5344
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5345
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5346
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5347
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5348
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5349
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5350
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5351
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5352
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5353
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5354
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5355
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5356
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5357
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5358
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5359
                ^ true -> ('Change has no effect\\(there is no method for #' , selector , ' in ' , thisClass name , ')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5360
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5361
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5362
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5363
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5364
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5365
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5366
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5367
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5368
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5369
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5370
     this replaces multiple method-changes by the last (i.e. the most recent) change.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5371
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5372
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5373
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5374
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5375
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5376
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5377
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5378
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5379
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5380
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5381
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5382
     this replaces multiple method-changes by the last (i.e. the most recent) change.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5383
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5384
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5385
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5386
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5387
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5388
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5389
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5390
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5391
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5392
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5393
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  5394
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5395
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5396
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5397
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5398
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5399
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5400
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5401
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5402
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5403
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5404
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5405
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5406
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5407
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5408
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5409
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5410
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5411
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5412
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5413
        "
16877
06db0d151de3 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 16478
diff changeset
  5414
        str := WriteStream on:''.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5415
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5416
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5417
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5418
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5419
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5420
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5421
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5422
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5423
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5424
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5425
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5426
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5427
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5428
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5429
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5430
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5431
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5432
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5433
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5434
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5435
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5436
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5437
            numChanges to:1 by:-1 do:[:changeNr |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5438
                aStream position:((changeInfoList at:changeNr) position)-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5439
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5440
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5441
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5442
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5443
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5444
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5445
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5446
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5447
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5448
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5449
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5450
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5451
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5452
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5453
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5454
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5455
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5456
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5457
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5458
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5459
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5460
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5461
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5462
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5463
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5464
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5465
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5466
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5467
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5468
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5469
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5470
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5471
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5472
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5473
                                ]
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5474
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5475
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5476
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5477
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5478
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5479
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5480
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5481
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5482
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5483
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5484
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5485
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5486
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5487
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5488
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5489
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5490
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5491
                                types at:changeNr put:#removeSelector
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5492
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5493
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5494
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5495
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5496
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5497
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5498
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5499
                            (chunk startsWith:snapshotPrefix) ifTrue:[
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  5500
                                str := chunk readStream position:snapshotNameIndex-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5501
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5502
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5503
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5504
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5505
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5506
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5507
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5508
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5509
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5510
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5511
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5512
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5513
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5514
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5515
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5516
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5517
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5518
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5519
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5520
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5521
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5522
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5523
         in the list and, if there is one, add change number to the delete set"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5524
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5525
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5526
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5527
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5528
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5529
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5530
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5531
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5532
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5533
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5534
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5535
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5536
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5537
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5538
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5539
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5540
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5541
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5542
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5543
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5544
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5545
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5546
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5547
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5548
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5549
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5550
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5551
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5552
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5553
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5554
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5555
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5556
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5557
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5558
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5559
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5560
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5561
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5562
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5563
        (deleteSet size > 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5564
            changeListView setSelection:nil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5565
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5566
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5567
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5568
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5569
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5570
            self setChangeList.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5571
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5572
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5573
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5574
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5575
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5576
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5577
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5578
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5579
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5580
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5581
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5582
    "Created: / 19-11-2001 / 22:03:42 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5583
    "Modified: / 01-05-2016 / 19:23:54 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5584
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5585
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5586
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5587
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5588
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5589
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5590
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5591
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5592
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5593
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5594
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5595
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5596
    stop to:start by:-1 do:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5597
	self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5598
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  5599
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5600
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5601
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5602
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5603
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5604
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5605
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  5606
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5607
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5608
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5609
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5610
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5611
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5612
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5613
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5614
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5615
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5616
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5617
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5618
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5619
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5620
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5621
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5622
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  5623
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5624
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5625
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5626
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5627
"/    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5628
"/    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5629
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5630
"/    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5631
"/    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5632
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5633
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5634
    "Modified: / 01-05-2016 / 19:20:40 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5635
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5636
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5637
silentDeleteChangesFor:aClassName from:start to:stop
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5638
    "delete changes for a given class in a range.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5639
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5640
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5641
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5642
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5643
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5644
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5645
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5646
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5647
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5648
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5649
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5650
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5651
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5652
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5653
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5654
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5655
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5656
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5657
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5658
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5659
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5660
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5661
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5662
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5663
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5664
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5665
    [index >= start] whileTrue:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5666
        thisClassName := self realClassNameOfChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5667
        thisClassName = aClassName ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5668
            (self selectorOfMethodChange:index) == selector ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5669
                self silentDeleteChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5670
                numDeleted := numDeleted + 1.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5671
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5672
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5673
        index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5674
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5675
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5676
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5677
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5678
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5679
    "delete changes for a given class and its private classes in a range.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5680
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5681
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5682
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5683
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5684
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5685
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5686
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5687
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5688
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5689
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5690
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5691
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5692
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5693
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5694
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5695
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5696
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5697
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5698
silentDeleteChangesForNamespace:aNamespace from:start to:stop
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5699
    "delete changes for a given namespace in a range.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5700
     Return the number of deleted changes."
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5701
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5702
    |thisNamespace index numDeleted|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5703
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5704
    numDeleted := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5705
    index := stop.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5706
    [index >= start] whileTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5707
        thisNamespace := self namespaceOfChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5708
        thisNamespace = aNamespace ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5709
            self silentDeleteChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5710
            numDeleted := numDeleted + 1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5711
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5712
        index := index - 1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5713
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5714
    ^ numDeleted
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5715
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5716
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5717
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5718
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5719
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5720
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5721
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5722
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5723
"/    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5724
"/    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5725
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5726
"/    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5727
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5728
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5729
    "Created: / 07-03-1997 / 16:28:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5730
    "Modified: / 26-02-1998 / 18:20:48 / stefan"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5731
    "Modified: / 01-05-2016 / 19:20:59 / cg"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5732
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5733
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5734
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5735
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5736
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5737
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5738
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5739
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5740
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5741
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5742
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5743
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5744
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5745
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5746
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5747
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5748
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5749
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5750
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5751
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5752
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5753
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5754
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5755
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5756
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5757
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5758
        chunk := self changeChunkAt:changeNr.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5759
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5760
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5761
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5762
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5763
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5764
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5765
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5766
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5767
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5768
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5769
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5770
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5771
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5772
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5773
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5774
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5775
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5776
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  5777
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5778
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5779
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5780
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5781
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5782
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5783
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5784
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5785
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5786
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5787
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5788
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5789
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5790
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5791
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5792
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5793
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5794
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5795
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5796
                        oldSource := 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5797
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5798
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5799
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5800
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5801
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5802
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5803
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5804
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5805
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5806
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5807
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5808
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5809
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5810
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5811
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5812
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5813
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5814
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5815
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5816
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5817
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  5818
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5819
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5820
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5821
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5822
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5823
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5824
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5825
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5826
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5827
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5828
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5829
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5830
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5831
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5832
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5833
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5834
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5835
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5836
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5837
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5838
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5839
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5840
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5841
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5842
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5843
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5844
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5845
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5846
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5847
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5848
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5849
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5850
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5851
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5852
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5853
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5854
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5855
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5856
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5857
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5858
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5859
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5860
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5861
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5862
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5863
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5864
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5865
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5866
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5867
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5868
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5869
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5870
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5871
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5872
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5873
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5874
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5875
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5876
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5877
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5878
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5879
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5880
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5881
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5882
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5883
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5884
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5885
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5886
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5887
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5888
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5889
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5890
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5891
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5892
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5893
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5894
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5895
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5896
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5897
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5898
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5899
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5900
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5901
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5902
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5903
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5904
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5905
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5906
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5907
    "Modified: / 01-05-2016 / 18:26:01 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5908
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5909
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5910
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5911
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5912
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5913
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5914
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5915
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5916
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5917
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5918
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5919
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5920
                          request:(resources stringWithCRs:'The modified changelist has not been written back to the change file.\\Write change file before closing ?')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5921
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5922
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5923
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5924
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5925
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5926
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5927
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5928
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5929
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5930
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5931
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5932
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5933
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5934
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5935
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5936
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5937
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5938
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5939
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5940
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5941
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5942
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5943
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5944
    "update the changes file and quit.
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  5945
     Don't depend on this being sent, not all window managers
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5946
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  5947
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5948
    anyChanges ifTrue:[
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  5949
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5950
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5951
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5952
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5953
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5954
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5955
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5956
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5957
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5958
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5959
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5960
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5961
    searchString := self
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5962
        askForSearchString:msg
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5963
        initialAnswer:initial
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5964
        directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5965
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5966
    searchString isNil ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5967
        ^ cancelBlock value
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5968
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  5969
    lastSearchString := searchString.
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  5970
    
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5971
    directionHolder value == #first ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5972
        self findFirstForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5973
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5974
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5975
    directionHolder value == #last ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5976
        self findLastForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5977
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5978
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5979
    
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5980
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5981
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5982
    directionHolder value == #backward ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5983
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5984
            changeNrShown := self numberOfChanges.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5985
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5986
        self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5987
    ] ifFalse:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5988
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5989
            changeNrShown := 0.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5990
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5991
        self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5992
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  5993
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  5994
    "Modified: / 10-02-2017 / 20:40:59 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5995
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5996
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5997
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5998
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5999
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6000
    |searchString direction choices current|
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6001
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6002
    direction := #forward.
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6003
    choices := OrderedCollection new.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6004
    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6005
    changeNrShown notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6006
        current := self classNameOfChange:changeNrShown.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6007
        initial ~= current ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6008
            (choices includes:current) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6009
                choices addFirst:current   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6010
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6011
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6012
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6013
    lastSearchString notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6014
        initial ~= lastSearchString ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6015
            (choices includes:lastSearchString) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6016
                choices addFirst:lastSearchString   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6017
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6018
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6019
    ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6020
    
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6021
    "/ take a normal request box, but add an additional 'previous' button
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6022
    Dialog modifyingBoxWith:[:box |
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6023
        |nextButton prevButton firstButton lastButton|
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6024
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6025
        nextButton := box okButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6026
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6027
        firstButton := Button label:(resources string:'First').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6028
        firstButton action:[direction := #first. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6029
        box addButton:firstButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6030
        
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6031
        lastButton := Button label:(resources string:'Last').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6032
        lastButton action:[direction := #last. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6033
        box addButton:lastButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6034
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6035
        prevButton := Button label:(resources string:'Previous').
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6036
        prevButton action:[direction := #backward. box okPressed.].
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6037
        box addButton:prevButton after:nextButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6038
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6039
        nextButton label:(resources string:'Next').
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6040
    ] do:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6041
        searchString := Dialog
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6042
                request:msg
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6043
                list:choices 
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6044
                initialAnswer:initial
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6045
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6046
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6047
    searchString isEmptyOrNil ifTrue:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6048
        ^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6049
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6050
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6051
    ^ searchString
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6052
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6053
    "
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6054
     self new askForSearchString:'foo' initialAnswer:'bla' directionInto:(false asValue)
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6055
    "
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6056
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6057
    "Modified: / 12-02-2017 / 11:18:11 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6058
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6059
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6060
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6061
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6062
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6063
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6064
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6065
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6066
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6067
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6068
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6069
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6070
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6071
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6072
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6073
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6074
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6075
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6076
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6077
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6078
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6079
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6080
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6081
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6082
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6083
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6084
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6085
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6086
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6087
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6088
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6089
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6090
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6091
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6092
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6093
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6094
    self changeListSelectionHolder value:lineNumbers.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6095
    
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6096
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6097
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6098
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6099
        changeNrShown := nil.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6100
        infoHolder value:nil.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6101
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6102
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6103
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6104
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6105
    self sensor
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6106
        enqueueMessage:#updateSourceCodeAfterChangedSelection for:self arguments:nil;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6107
        enqueueMessage:#updateInfoAfterChangedSelection for:self arguments:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6108
^ self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6109
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6110
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6111
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6112
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6113
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6114
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  6115
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6116
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6117
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  6118
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6119
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6120
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6121
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6122
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6123
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6124
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6125
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6126
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6127
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6128
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6129
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6130
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6131
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6132
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6133
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6134
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6135
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6136
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  6137
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6138
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6139
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6140
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6141
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6142
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6143
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6144
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6145
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6146
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6147
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6148
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6149
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6150
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6151
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6152
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6153
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6154
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6155
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6156
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6157
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6158
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6159
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6160
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6161
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6162
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6163
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6164
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6165
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6166
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6167
classOfChange:changeNr ifAbsent:exceptionBlock
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6168
    "answer the class that is subject to the chamge at changeNr.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6169
     The classes owning class may be autoloaded, if autoloadAsRequired is true."
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6170
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6171
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6172
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6173
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6174
    className isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6175
        ^ exceptionBlock value:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6176
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6177
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6178
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6179
    (className endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  6180
        className := className copyButLast:6.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6181
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6182
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  6183
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6184
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6185
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6186
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6187
            1 to:path size-1 do:[:l |
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6188
                "/ ensure that the owningClass is loaded - this will load the private classes as well
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6189
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6190
                ownerName := (path copyTo:l) asStringCollection asStringWith:'::'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6191
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6192
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6193
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6194
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6195
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6196
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6197
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6198
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6199
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6200
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6201
        cls := nameSpaceForApply classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6202
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6203
        cls := nameSpaceForApply loadedClassNamed:className
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6204
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6205
    (cls isNil and:[nameSpaceForApply ~~ Smalltalk]) ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6206
        "if not found in special name space, fall back to the Smalltalk name space"
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6207
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6208
            cls := Smalltalk classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6209
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6210
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6211
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6212
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6213
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6214
    cls isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6215
        ^ exceptionBlock value:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6216
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6217
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6218
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6219
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6220
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6221
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6222
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6223
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6224
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6225
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6226
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6227
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6228
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6229
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6230
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6231
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6232
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  6233
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6234
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6235
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6236
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6237
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6238
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6239
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6240
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6241
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6242
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6243
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6244
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6245
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6246
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6247
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6248
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6249
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6250
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6251
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6252
            lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6253
            self withWriteCursorDo:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6254
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6255
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6256
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6257
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6258
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6259
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6260
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6261
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6262
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6263
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6264
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6265
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6266
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6267
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  6268
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6269
    "Modified: / 27-07-2012 / 09:46:04 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6270
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6271
11477
95c469c33ab3 added: #selectionChanged
Stefan Vogel <sv@exept.de>
parents: 11476
diff changeset
  6272
selectionChanged
12946
e6e3c7681456 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12845
diff changeset
  6273
    self halt:'should not be here'
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6274
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6275
    "Created: / 03-01-2012 / 15:26:36 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6276
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6277
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6278
updateInfoAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6279
    "update the info label"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6280
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6281
    |selection lineNr selectorOrNil className nonMetaClassName metaClassName
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6282
     nClassChanges nMethodChanges uniqueSelectors
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6283
     lastLineNr firstLineNr 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6284
     countForClassBeforeCurrent countForClassAfterLast countForClassAndSelectorAfterLast 
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6285
     moreInfo msg|
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6286
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6287
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6288
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6289
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6290
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6291
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6292
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6293
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6294
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6295
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6296
        infoHolder value:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6297
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6298
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6299
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6300
    "/
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6301
    "/ now, this info is computed so fast,
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6302
    "/ we can do it each time the selection changes
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6303
    "/ (can we?)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6304
    className := self realClassNameOfChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6305
    className isNil ifTrue:[
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6306
        infoHolder value:nil.
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6307
        ^ self
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6308
    ].
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6309
    selectorOrNil := self selectorOfMethodChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6310
    
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6311
    nonMetaClassName := (className endsWith:' class')
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6312
                            ifTrue:[ className copyButLast:' class' size ]
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6313
                            ifFalse:[ className ].
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6314
    metaClassName := nonMetaClassName,' class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6315
                            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6316
    nClassChanges := nMethodChanges := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6317
    uniqueSelectors := Set new.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6318
    lastLineNr := firstLineNr := nil.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6319
    countForClassAfterLast := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6320
    countForClassBeforeCurrent := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6321
    countForClassAndSelectorAfterLast := 0.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6322
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6323
    "/ count them all
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6324
    1 to:changeInfoList size do:[:i |
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6325
        |sel nameOfChange|
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6326
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6327
        changeInfoList at:i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6328
        nameOfChange := self realClassNameOfChange:i.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6329
        ((nameOfChange = nonMetaClassName) or:[nameOfChange = metaClassName]) ifTrue:[
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6330
            sel := self selectorOfMethodChange:i.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6331
            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6332
            lastLineNr := i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6333
            firstLineNr := firstLineNr ? i.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6334
            i > lineNr ifTrue:[ 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6335
                countForClassAfterLast := countForClassAfterLast + 1.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6336
                (nameOfChange = className 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6337
                  and:[ selectorOrNil notNil 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6338
                  and:[sel == selectorOrNil]]) ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6339
                    countForClassAndSelectorAfterLast := countForClassAndSelectorAfterLast + 1.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6340
                ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6341
            ] ifFalse:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6342
                i < lineNr ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6343
                    countForClassBeforeCurrent := countForClassBeforeCurrent + 1
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6344
                ]
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6345
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6346
            nClassChanges := nClassChanges + 1.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6347
            sel notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6348
                uniqueSelectors add:sel.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6349
                nMethodChanges := nMethodChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6350
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6351
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6352
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6353
    lastLineNr == lineNr ifTrue:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6354
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6355
            moreInfo := resources string:'. This is the only one for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6356
        ] ifFalse:[    
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6357
            moreInfo := resources string:'. This is the last for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6358
        ]
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6359
    ] ifFalse:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6360
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6361
            moreInfo := resources string:'. This is the first for this class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6362
        ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6363
        countForClassAfterLast > 0 ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6364
            moreInfo := (moreInfo ? ''),(resources string:'. %1 more for this class' with:countForClassAfterLast).
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6365
            countForClassAndSelectorAfterLast > 0 ifTrue:[
17419
469331b680ed #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17400
diff changeset
  6366
                moreInfo := moreInfo,(resources string:', %1 for selector' with:countForClassAndSelectorAfterLast).
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6367
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6368
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6369
    ].
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6370
    uniqueSelectors size == 1 ifTrue:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6371
        nMethodChanges == 1 ifTrue:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6372
            msg := '%1 changes. %2 for %3 (1 for #''%5'')%6'
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6373
        ] ifFalse:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6374
            msg := '%1 changes. %2 for %3 (%4 methods / for #''%5'')%6'
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6375
        ].    
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6376
        infoHolder value:(resources 
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6377
                            string:msg
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6378
                            with:(changeInfoList size)
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6379
                            with:nClassChanges
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6380
                            with:className
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6381
                            with:nMethodChanges
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6382
                            with:uniqueSelectors first
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6383
                            with:moreInfo).
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6384
    ] ifFalse:[        
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6385
        infoHolder value:(resources 
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6386
                            string:'%1 changes. %2 for %3 (%4 methods / %5 selectors)%6'
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6387
                            with:(changeInfoList size)
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6388
                            with:nClassChanges
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6389
                            with:className
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6390
                            with:nMethodChanges
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6391
                            with:uniqueSelectors size
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6392
                            with:moreInfo).
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6393
    ].
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6394
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6395
    "Modified: / 19-02-2017 / 13:37:19 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6396
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6397
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6398
updateSourceCodeAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6399
    "show a change in the codeView"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6400
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6401
    |selection lineNr chunk|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6402
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6403
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6404
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6405
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6406
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6407
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6408
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6409
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6410
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6411
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6412
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6413
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6414
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6415
    "/ display the changes code
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6416
    chunk := self sourceOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6417
    chunk isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6418
        codeView initializeDoITAction.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6419
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6420
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6421
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6422
    codeView contents:chunk.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6423
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6424
    codeView doItAction:[:theCode |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6425
        |clsName cls|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6426
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6427
        clsName := self classNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6428
        clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6429
            clsName := clsName asSymbolIfInterned.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6430
            clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6431
                cls := Smalltalk at:clsName ifAbsent:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6432
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6433
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6434
        Compiler
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6435
            evaluate:theCode
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6436
            in:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6437
            receiver:cls
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6438
            notifying:self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6439
            logged:true
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6440
            ifFail:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6441
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6442
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6443
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6444
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6445
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6446
    self showingDiffs value ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6447
        self withWaitCursorDo:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6448
            AbortOperationRequest catch:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6449
                self updateDiffViewFor:changeNrShown.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6450
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6451
        ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6452
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6453
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6454
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6455
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6456
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6457
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6458
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6459
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6460
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6461
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6462
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6463
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6464
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6465
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6466
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6467
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6468
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6469
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6470
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6471
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6472
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6473
changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6474
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6475
    ^ changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6476
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6477
    "Modified: / 01-05-2016 / 19:10:52 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6478
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6479
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6480
changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6481
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6482
    ^ changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6483
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6484
    "Modified: / 01-05-2016 / 19:10:47 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6485
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6486
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6487
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6488
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6489
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6490
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6491
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6492
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6493
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6494
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6495
changeHeaderLines
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6496
self halt.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6497
   ^ changeHeaderLines
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6498
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6499
    "Modified: / 01-05-2016 / 19:10:41 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6500
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6501
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6502
changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6503
    ^ changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6504
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6505
    "Created: / 01-05-2016 / 19:10:05 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6506
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6507
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6508
changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6509
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6510
    ^ changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6511
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6512
    "Modified: / 01-05-2016 / 19:10:24 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6513
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6514
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6515
changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6516
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6517
    ^ changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6518
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6519
    "Modified: / 01-05-2016 / 19:10:29 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6520
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6521
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6522
changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6523
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6524
    ^ changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6525
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6526
    "Modified: / 01-05-2016 / 19:10:34 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6527
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6528
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6529
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6530
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6531
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6532
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6533
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6534
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6535
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6536
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6537
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6538
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6539
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6540
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6541
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6542
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6543
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6544
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6545
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6546
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6547
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6548
    "Modified: / 06-10-2006 / 11:18:49 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6549
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6550
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6551
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6552
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6553
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6554
    "contract a class>>selector string (for display in the changeList)."
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6555
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6556
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6557
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6558
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6559
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6560
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6561
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6562
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6563
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6564
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6565
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6566
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6567
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6568
                s := (className contractTo:(maxLen // 2 - 1)) , ' ' , (selector contractTo:maxLen // 2)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6569
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6570
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6571
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6572
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6573
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6574
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6575
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6576
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6577
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6578
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6579
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6580
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6581
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6582
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6583
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6584
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6585
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6586
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6587
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6588
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6589
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6590
    enforcedNameSpace notNil ifTrue:[
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6591
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6592
            changeClass := enforcedNameSpace classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6593
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6594
            changeClass := enforcedNameSpace loadedClassNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6595
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6596
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6597
    changeClass isNil ifTrue:[
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6598
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6599
            changeClass := Smalltalk classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6600
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6601
            changeClass := Smalltalk loadedClassNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6602
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6603
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6604
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6605
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6606
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6607
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6608
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6609
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6610
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6611
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6612
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6613
    "Modified: / 03-08-2006 / 14:02:31 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6614
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6615
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6616
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6617
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6618
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6619
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6620
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6621
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6622
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6623
    changeHeaderLines add:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6624
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6625
    "Modified: / 01-05-2016 / 19:07:49 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6626
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6627
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6628
headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6629
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6630
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6631
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6632
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6633
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6634
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6635
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6636
    timeStampInfo notNil ifTrue:[
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  6637
        entry colAt:4 put:(browser timeStampPrintStringOf:timeStampInfo).
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6638
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6639
    ^ entry
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6640
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6641
    "Created: / 01-05-2016 / 19:07:20 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6642
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6643
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6644
processChunk
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6645
    |info|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6646
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6647
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6648
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6649
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6650
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6651
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6652
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6653
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6654
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6655
    changeInfo add:(info := 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6656
                        ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6657
                            position:chunkPosition chunk:chunkText className:nil selector:nil headerLine:nil
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6658
                            timestamp:timeStampInfo isFollowupChange:false).
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6659
"/    changeChunks add:chunkText.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6660
"/    changeClassNames add:nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6661
"/    changePositions add:chunkPosition.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6662
"/    changeTimeStamps add:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6663
"/    changeIsFollowupMethodChange add:false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6664
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6665
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6666
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6667
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6668
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6669
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6670
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6671
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6672
            [
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6673
                changeInfo removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6674
"/                changeChunks removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6675
"/                changeClassNames removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6676
"/                changePositions removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6677
"/                changeTimeStamps removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6678
"/                changeIsFollowupMethodChange removeLast.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6679
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6680
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6681
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6682
    changeString notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6683
        "/ self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6684
        info headerLine:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6685
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6686
        headerLine notNil ifTrue:[
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  6687
            changeHeaderLines add:headerLine.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6688
            info headerLine:headerLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6689
        ]
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6690
    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6691
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6692
    "Modified: / 01-05-2016 / 19:13:59 / cg"
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  6693
    "Modified: / 27-10-2017 / 14:34:51 / stefan"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6694
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6695
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6696
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6697
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6698
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6699
    |askedForEditingClassSource changeClass category anyMethod
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6700
     sel p rec clsName done first text methodPos
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6701
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo methodSelector nameAndClass
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6702
     info|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6703
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6704
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6705
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6706
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6707
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6708
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6709
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6710
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6711
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6712
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6713
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6714
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6715
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6716
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6717
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6718
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  6719
(chunkText includesString:'§') ifTrue:[self halt].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6720
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6721
    p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
6835
87e0844b7e12 Avoid debugger on timestamp information whenn doing autocompare
Stefan Vogel <sv@exept.de>
parents: 6820
diff changeset
  6722
    (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6723
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6724
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6725
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6726
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6727
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6728
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6729
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6730
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6731
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6732
                classCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6733
                changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6734
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6735
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6736
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6737
                    methodCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6738
                    changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6739
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6740
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6741
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6742
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6743
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6744
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6745
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6746
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6747
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6748
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6749
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6750
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6751
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6752
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6753
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6754
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6755
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6756
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6757
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6758
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6759
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6760
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6761
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6762
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6763
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6764
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6765
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6766
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6767
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6768
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6769
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6770
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6771
        changeDelta := ' '.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  6772
        methodPos := inStream position + 1.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6773
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6774
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6775
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6776
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6777
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6778
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6779
            first ifFalse:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6780
                info := ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6781
                            position:methodPos chunk:chunkText className:clsName 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6782
                            selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6783
                changeInfo add:info.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6784
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6785
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6786
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6787
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6788
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6789
            ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6790
                changeInfo last className:clsName
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6791
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6792
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6793
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6794
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6795
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6796
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6797
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6798
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6799
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6800
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6801
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6802
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6803
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6804
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6805
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6806
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6807
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6808
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6809
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6810
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6811
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6812
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6813
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6814
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6815
                    methodChunks ifTrue:[
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6816
                        p := Parser for:(ReadStream on:text) in:nil.  
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6817
                        p ignoreErrors:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6818
                        p ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6819
                        p parserFlags allowDollarInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6820
                        p parserFlags allowParagraphInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6821
                        p parseMethodSpec.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6822
                        methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6823
"/                        p := Parser
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6824
"/                                 parseMethodSpecification:text
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6825
"/                                 in:nil
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6826
"/                                 ignoreErrors:true
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6827
"/                                 ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6828
"/                        (p notNil and:[p ~~ #Error]) ifTrue:[
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6829
"/                            methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6830
"/                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6831
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6832
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6833
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6834
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6835
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6836
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6837
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6838
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6839
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6840
                    changeType := '{ ' , category , ' }'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6841
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6842
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6843
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6844
                autoCompare value ifTrue:[
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6845
                    changeDelta := ChangeDeltaInformation 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6846
                                        changeDeltaFor:text changeClass:changeClass selector:methodSelector.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6847
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6848
            ].
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6849
            changeInfo last 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6850
                headerLine:(self headerLineForChangeType:changeType 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6851
                                 changeString:changeString
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6852
                                 changeDelta:changeDelta
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  6853
                                 timeStampInfo:timeStampInfo).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6854
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6855
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6856
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6857
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6858
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6859
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6860
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6861
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6862
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6863
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6864
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6865
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6866
    "Modified: / 21-11-2016 / 23:32:29 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6867
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6868
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6869
processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6870
    |s changeClass sel  cls p rec clsName ownerTree ownerName
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6871
     m nameAndClass args instVarsArg classVarsArg categoryArg|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6872
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6873
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6874
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6875
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6876
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6877
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6878
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6879
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6880
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6881
     first, assume doIt - then lets have a more detailed look ...
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6882
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6883
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6884
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6885
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6886
        timeStampInfo := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6887
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6888
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6889
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6890
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6891
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6892
    p := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6893
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6894
        p isMessage ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6895
            sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6896
            rec := p receiver.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6897
            args := p args.        
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6898
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6899
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6900
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6901
        (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6902
            "/ a comment only
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6903
            changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6904
            NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6905
                changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6906
                "/ changeString := changeString allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6907
                changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6908
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6909
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6910
            changeType := '(???)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6911
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6912
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6913
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6914
    (sel == #comment:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6915
        changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6916
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6917
        changeClass := (self nameSpaceForApply) classNamed:clsName.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6918
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6919
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6920
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6921
            changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6922
            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6923
            "/ changeString := clsName allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6924
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6925
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6926
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6927
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6928
            ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6929
                (changeClass comment = (args at:1) evaluate) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6930
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6931
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6932
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6933
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6934
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6935
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6936
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6937
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6938
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6939
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6940
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6941
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6942
        sel := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6943
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6944
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6945
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6946
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6947
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6948
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6949
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6950
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6951
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6952
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6953
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6954
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6955
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6956
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6957
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6958
        changeString := self contractClass:clsName selector:sel to:maxLen.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6959
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6960
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6961
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6962
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6963
    (p notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6964
    and:[p ~~ #Error
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6965
    and:[p isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6966
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6967
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6968
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6969
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6970
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6971
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6972
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6973
            changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6974
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6975
            (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6976
            "/ changeClassNames at:changeClassNames size put:clsName.
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6977
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6978
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6979
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6980
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6981
                    m := changeClass compiledMethodAt:sel asSymbol.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6982
                    m notNil ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6983
                        m category = (p args at:1) evaluate ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6984
                            changeDelta := '='.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6985
                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6986
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6987
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6988
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6989
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6990
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6991
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6992
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6993
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6994
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6995
            (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6996
            "/ changeClassNames at:changeClassNames size put:clsName.
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6997
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6998
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6999
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7000
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7001
                    changeDelta := ' '
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7002
                ]
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7003
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7004
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7005
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7006
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7007
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7008
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7009
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7010
        changeType := '(class definition)'.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7011
        clsName := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7012
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7013
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7014
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7015
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7016
        ('*privateIn:' match:sel) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7017
            ownerTree := args last.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7018
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7019
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7020
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7021
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7022
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7023
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7024
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7025
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7026
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7027
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7028
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7029
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7030
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7031
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7032
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7033
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7034
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7035
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7036
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7037
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7038
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7039
                    ((cls superclass isNil
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  7040
                        and:[p receiver isLiteral
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7041
                        and:[p receiver evaluate isNil]])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7042
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7043
                        cls superclass notNil
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  7044
                        and:[p receiver isLiteral not
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7045
                        and:[cls superclass name = p receiver name]]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7046
                    ]) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7047
                        (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7048
                        ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7049
                            "/ VSE definition message
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7050
                            instVarsArg := ''.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7051
                            classVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7052
                            categoryArg := (args at:4) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7053
                        ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7054
                            instVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7055
                            classVarsArg := (args at:3) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7056
                            categoryArg := (args at:5) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7057
                        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7058
                        cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7059
                            cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7060
                                cls definitionSelector = (sel , 'category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7061
                                ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7062
                                    "/ ST/V, VAge or Dolphin definition
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7063
                                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7064
                                ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7065
                                    cls category = categoryArg ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7066
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7067
                                    ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7068
                                        changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7069
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7070
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7071
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7072
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7073
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7074
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7075
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7076
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7077
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7078
        ^ self.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7079
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7080
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7081
    (#(
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7082
      #'primitiveDefinitions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7083
      #'primitiveFunctions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7084
      #'primitiveVariables:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7085
     ) includes:sel) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7086
        changeType := '(class definition)'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7087
        clsName := rec name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7088
        ^ self.    
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7089
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7090
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7091
    ((sel == #instanceVariableNames:)
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7092
    and:[rec isMessage
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7093
    and:[rec selector == #class]]) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7094
        clsName := rec receiver name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7095
        changeClass := (self nameSpaceForApply) classNamed:clsName.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7096
        changeType := '(class definition)'.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7097
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7098
        "/ changeClassNames at:changeClassNames size put:clsName.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7099
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7100
        autoCompare value ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7101
            changeClass isNil ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7102
                changeDelta := '?'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7103
            ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7104
                s := (p args at:1) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7105
                s = changeClass class instanceVariableString ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7106
                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7107
                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7108
            ]
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7109
        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7110
        ^ self.    
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7111
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  7112
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7113
    "Modified: / 01-05-2016 / 19:19:54 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7114
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7115
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7116
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7117
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7118
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7119
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7120
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7121
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7122
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7123
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7124
    "read the changes file, create a list of header-lines (changeChunks)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7125
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7126
     Starting with 2.10.3, the entries are multi-col entries;
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7127
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7128
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7129
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7130
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7131
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7132
                '=' -> change is the same as current methods source
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7133
                '~' -> change is almost the same as current methods source
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7134
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7135
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7136
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7137
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7138
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7139
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7140
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7141
     since comparing slows down startup time, it is now disabled by
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7142
     default and can be enabled via a toggle."
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7143
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7144
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7145
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7146
    changeInfo := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7147
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7148
"/    changeChunks := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7149
"/    changeClassNames := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7150
"/    changeHeaderLines := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7151
"/    changePositions := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7152
"/    changeTimeStamps := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7153
"/    changeIsFollowupMethodChange := OrderedCollection new.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7154
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7155
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7156
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7157
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7158
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7159
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7160
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7161
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7162
        inStream skipSeparators.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7163
        chunkPosition := inStream position + 1.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7164
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7165
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7166
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  7167
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7168
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7169
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7170
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7171
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7172
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7173
    "Modified: / 01-05-2016 / 18:33:36 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7174
! !
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7175
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7176
!ChangesBrowser::ChangeInfo methodsFor:'accessing'!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7177
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7178
chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7179
    ^ chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7180
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7181
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7182
className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7183
    ^ className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7184
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7185
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7186
className:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7187
    className := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7188
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7189
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7190
headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7191
    ^ headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7192
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7193
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7194
headerLine:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7195
    headerLine := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7196
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7197
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7198
isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7199
    ^ isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7200
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7201
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7202
position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7203
    ^ position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7204
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7205
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7206
position:positionArg chunk:chunkArg className:classNameArg selector:selectorArg headerLine:headerLineArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7207
    timestamp:timestampArg isFollowupChange:isFollowupChangeArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7208
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7209
    position := positionArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7210
    chunk := chunkArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7211
    className := classNameArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7212
    selector := selectorArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7213
    headerLine := headerLineArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7214
    timestamp := timestampArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7215
    isFollowupChange := isFollowupChangeArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7216
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7217
    "Created: / 01-05-2016 / 19:01:03 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7218
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7219
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7220
selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7221
    ^ selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7222
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7223
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7224
selector:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7225
    selector := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7226
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7227
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7228
timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7229
    ^ timestamp
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7230
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7231
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  7232
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7233
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7234
version
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7235
    ^ '$Header$'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7236
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7237
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7238
version_CVS
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7239
    ^ '$Header$'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  7240
! !
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  7241