ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Tue, 07 Feb 2012 17:43:02 +0100
changeset 11244 0b40d366b57c
parent 11243 1d305f8287cc
child 11275 abeda3e68385
permissions -rw-r--r--
class definition changed: #applyChange: #readChangesFileInBackground:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     1
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 1
diff changeset
     2
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
     3
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     4
571fd5eee315 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
"
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    12
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    13
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    14
StandardSystemView subclass:#ChangesBrowser
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    15
	instanceVariableNames:'changeListView codeView diffView changeFileName changeChunks
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    16
		changePositions changeClassNames changeSelectors
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    17
		changeHeaderLines changeIsFollowupMethodChange anyChanges
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
    18
		changeNrShown changeNrProcessed multipleApply autoCompare
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    19
		changeFileSize changeFileTimestamp checkBlock changeTimeStamps
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    20
		tabSpec autoUpdate editingClassSource lastSearchType
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    21
		lastSearchString applyInOriginalNameSpace lastSaveFileName
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    22
		readOnly enforcedPackage enforcedNameSpace updateChangeSet
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
    23
		showingDiffs diffViewBox autoloadAsRequired
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
    24
		classesNotToBeAutoloaded encodingIfKnown
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    25
		ignorePublicPrivateCategories changeListSelectionHolder
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    26
		defaultApplicationForVAGEClasses'
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
    27
	classVariableNames:'CompressSnapshotInfo NoColoring ShowWarningDialogs
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
    28
		DefaultAutoCompare DefaultShowingDiffs LastEnforcedNameSpace
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
    29
		KeepEnforcedNameSpace'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    30
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    31
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    32
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    33
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    34
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    35
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    36
		changeFileTimestamp changeChunks changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    37
		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
    38
		changeIsFollowupMethodChange autoCompare autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    39
		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
    40
		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
    41
		changeString changeType changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    42
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    43
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    44
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    45
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    46
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    47
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    48
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    49
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    50
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    51
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    52
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    53
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    54
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    55
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    56
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    57
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    58
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    61
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    62
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    63
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    64
"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    65
    this implements a browser for the changes-file (actually, it can display
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    66
    any sourceFiles contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    69
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    70
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    71
    This is a very old leftover class (The Merovingian has not yet detected this one ;-)
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    72
    It will be completely replaced by the ChangeSetBrowser class in the near future.
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    73
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    74
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    75
    [Class variables:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    76
	CompressSnapshotInfo            if true (the default), snapshot entries
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    77
					are also compressed in the compress function.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    78
					Some users prefer them to be not compressed.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    79
					Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    80
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    81
    Notice:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    82
	this needs a total rewrite, to build up a changeSet from the file
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    83
	(which did not exist when the ChangesBrowser was originally written)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    84
	and manipulate that changeSet.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    85
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    86
	This way, we get a browser for any upcoming incore changeSets for
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    87
	free. Also, this will put the chunk analyzation code into Change and
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    88
	subclasses (where it belongs) and give a better encapsulation and
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    89
	overall structure. Do not take this as an example for good style ;-)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    90
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    91
	The Change hierarchy is currently been completed, and the changes browser
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    92
	will be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    93
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    94
    [author:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    95
	Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    96
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    97
    [start with:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    98
	ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    99
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   100
    [see also:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   101
	( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   102
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   103
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   104
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   105
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   106
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   107
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   108
new
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   109
    "create a new changes browser"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   110
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   111
    ^ super
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   112
	label:(self defaultLabel)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   113
	icon:(self defaultIcon)
1470
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   114
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   115
    "Modified: / 6.2.1998 / 13:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   116
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   117
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   118
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   119
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   120
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   121
    |fileName browser|
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   122
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   123
    fileName := aFilename asFilename pathName.
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
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   126
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   127
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   128
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   129
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   130
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   131
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   132
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   133
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   134
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   135
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   136
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   137
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   138
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   139
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   140
571fd5eee315 Initial revision
claus
parents:
diff changeset
   141
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   142
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   143
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   144
571fd5eee315 Initial revision
claus
parents:
diff changeset
   145
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   146
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   147
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   148
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   149
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   150
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   151
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   152
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   153
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   154
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   155
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   156
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   157
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   158
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   159
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   160
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   161
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   162
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   163
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   164
     (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
   165
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   166
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   167
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   168
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   169
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   170
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   171
!ChangesBrowser class methodsFor:'menu specs'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   172
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   173
flyByHelpSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   174
self halt.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   175
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   176
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   177
    "Created: / 07-09-2011 / 16:19:11 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   178
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   179
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   180
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   181
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   182
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   183
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   184
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   185
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   186
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   187
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   188
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   189
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   190
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   191
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   192
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   193
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   194
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   195
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   196
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   197
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   198
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   199
            label: 'File'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   200
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   201
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   202
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   203
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   204
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   205
                  label: 'Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   206
                  itemValue: doCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   207
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   208
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   209
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   210
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   211
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   212
                  label: 'Compress for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   213
                  itemValue: doCompressClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   214
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   215
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   216
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   217
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   218
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   219
                  label: 'Compress for Class && Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   220
                  itemValue: doCompressSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   221
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   222
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   223
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   224
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   225
                  label: 'Compare and Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   226
                  itemValue: doCompareAndCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   227
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   228
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   229
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   230
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   231
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   232
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   233
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   234
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   236
                  label: 'Fileout && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   237
                  itemValue: doFileoutAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   238
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   240
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   241
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   242
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   243
                  label: 'CheckIn && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   244
                  itemValue: doCheckinAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   245
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   246
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   247
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   248
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   249
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   250
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   251
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   252
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   253
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   254
                  label: 'Save In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   255
                  itemValue: doSave
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   256
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   257
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   258
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   259
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   260
                  label: 'Save to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   261
                  itemValue: doSaveRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   262
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   263
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   264
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   265
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   266
                  label: 'Save for Class to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   267
                  itemValue: doSaveClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   268
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   269
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   270
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   271
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   272
                  label: 'Save all for Class In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   273
                  itemValue: doSaveClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   274
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   275
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   276
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   277
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   278
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   279
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   280
                  label: 'Writeback ClassFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   281
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   282
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   283
                  isVisible: editingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   284
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   285
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   286
                  label: 'Writeback ChangeFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   287
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   288
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   289
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   290
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   291
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   292
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   293
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   294
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   295
                  label: 'Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   296
                  itemValue: doUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   297
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   298
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   299
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   300
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   301
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   302
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   303
                  label: 'Exit'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   304
                  itemValue: menuExit
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   305
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   306
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   307
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   308
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   309
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   310
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   311
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   312
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   313
            label: 'Change'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   314
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   315
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   316
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   317
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   318
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   319
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   320
                  label: 'Apply'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   321
                  itemValue: doApply
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   322
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   323
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   324
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   325
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   326
                  label: 'Apply to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   327
                  itemValue: doApplyRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   328
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   329
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   330
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   331
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   332
                  label: 'Apply from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   333
                  itemValue: doApplyFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   334
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   335
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   336
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   337
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   338
                  label: 'Apply for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   339
                  itemValue: doApplyClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   340
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   341
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   342
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   343
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   344
                  label: 'Apply for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   345
                  itemValue: doApplyClassFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   346
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   347
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   348
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   349
                  enabled: hasNoSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   350
                  label: 'Apply All'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   351
                  itemValue: doApplyAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   352
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   353
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   354
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   355
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   356
                  label: 'Apply to Conflict or End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   357
                  itemValue: doApplyToConflictOrEnd
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   358
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   359
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   360
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   361
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   362
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   363
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   364
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   365
                  label: 'Delete'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   366
                  itemValue: doDelete
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   367
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   368
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   369
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   370
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   371
                  label: 'Delete to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   372
                  itemValue: doDeleteRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   373
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   374
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   375
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   376
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   377
                  label: 'Delete from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   378
                  itemValue: doDeleteFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   379
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   380
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   381
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   382
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   383
                  label: 'Delete for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   384
                  itemValue: doDeleteClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   385
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   386
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   387
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   388
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   389
                  label: 'Delete for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   390
                  itemValue: doDeleteClassFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   391
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   392
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   393
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   394
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   395
                  label: 'Delete all for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   396
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   397
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   398
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   399
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   400
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   401
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   402
                  label: 'Delete all for Class && its Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   403
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   404
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   405
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   406
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   407
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   408
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   409
                  label: 'Delete all for Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   410
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   411
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   412
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   413
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   414
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   415
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   416
                  label: 'Delete all for Classes && their Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   417
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   418
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   419
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   420
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   421
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   422
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   423
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   424
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   425
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   426
                  label: 'Delete all Versions of Selected Method'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   427
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   428
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   429
                  isVisible: hasNoMultiSelectionHolder
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   430
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   431
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   432
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   433
                  label: 'Delete all Versions of all Selected Methods'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   434
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   435
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   436
                  isVisible: hasMultiSelectionHolder
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   437
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   438
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   439
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   440
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   441
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   442
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   443
                  label: 'Compare with Current'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   444
                  itemValue: doCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   445
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   446
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   447
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   448
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   449
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   450
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   451
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   452
                  label: 'Make Change a Patch'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   453
                  itemValue: doMakePatch
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   454
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   455
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   456
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   457
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   458
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   459
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   460
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   461
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   462
            label: 'Search'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   463
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   464
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   465
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   466
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   467
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   468
                  label: 'Class...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   469
                  itemValue: findClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   470
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   471
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   472
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   473
                  enabled: hasSelection
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   474
                  label: 'First for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   475
                  itemValue: findFirstForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   476
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   477
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   478
               (MenuItem
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   479
                  enabled: hasSelection
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   480
                  label: 'Previous for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   481
                  itemValue: findPreviousForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   482
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   483
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   484
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   485
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   486
                  label: 'Next for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   487
                  itemValue: findNextForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   488
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   489
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   490
               (MenuItem
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   491
                  enabled: hasSelection
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   492
                  label: 'Last for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   493
                  itemValue: findLastForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   494
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   495
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   496
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   497
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   498
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   499
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   500
                  label: 'Selector...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   501
                  itemValue: findSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   502
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   503
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   504
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   505
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   506
                  label: 'Previous for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   507
                  itemValue: findPreviousForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   508
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   509
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   510
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   511
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   512
                  label: 'Next for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   513
                  itemValue: findNextForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   514
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   515
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   516
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   517
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   518
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   519
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   520
                  label: 'String...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   521
                  itemValue: findString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   522
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   523
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   524
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   525
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   526
                  label: 'Previous with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   527
                  itemValue: findPreviousForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   528
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   529
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   530
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   531
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   532
                  label: 'Next with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   533
                  itemValue: findNextForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   534
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   535
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   536
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   537
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   538
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   539
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   540
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   541
                  label: 'Previous Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   542
                  itemValue: findPreviousDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   543
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   544
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   545
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   546
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   547
                  label: 'Next Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   548
                  itemValue: findNextDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   549
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   550
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   551
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   552
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   553
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   554
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   555
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   556
                  label: 'Previous Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   557
                  itemValue: findPreviousSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   558
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   559
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   560
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   561
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   562
                  label: 'Next Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   563
                  itemValue: findNextSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   564
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   565
                )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   566
               (MenuItem
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   567
                  label: 'Last Snapshot'
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   568
                  itemValue: findLastSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   569
                  translateLabel: true
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   570
                )
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   571
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   572
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   573
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   574
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   575
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   576
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   577
            label: 'Browse'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   578
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   579
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   580
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   581
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   582
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   583
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   584
                  label: 'Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   585
                  itemValue: doBrowse
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   586
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   587
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   588
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   589
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   590
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   591
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   592
                  label: 'Senders...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   593
                  itemValue: doBrowseSenders
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   594
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   595
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   596
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   597
                  label: 'Implementors...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   598
                  itemValue: doBrowseImplementors
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   599
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   600
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   601
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   602
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   603
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   604
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   605
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   606
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   607
            label: 'Settings'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   608
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   609
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   610
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   611
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   612
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   613
                  label: 'Auto Compare'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   614
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   615
                  indication: autoCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   616
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   617
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   618
                  label: 'Autoload As Required'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   619
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   620
                  indication: autoloadAsRequired
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   621
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   622
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   623
                  label: 'Show Diffs'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   624
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   625
                  indication: showingDiffs
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   626
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   627
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   628
                  label: 'Auto Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   629
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   630
                  indication: autoUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   631
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   632
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   633
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   634
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   635
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   636
                  label: 'Add to ChangeSet when Applying'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   637
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   638
                  indication: updateChangeSet
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   639
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   640
               (MenuItem
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   641
                  label: 'Ignore public/private categories (Dolphin code)'
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   642
                  itemValue: ignorePublicPrivateCategories:
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   643
                  translateLabel: true
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   644
                  indication: ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   645
                )
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   646
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   647
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   648
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   649
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   650
                  label: 'Apply into Package...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   651
                  itemValue: setEnforcedPackage
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   652
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   653
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   654
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   655
                  label: 'Apply into NameSpace...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   656
                  itemValue: setEnforcedNameSpace
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   657
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   658
                )
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   659
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   660
                  label: '-'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   661
                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   662
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   663
                  label: 'Settings...'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   664
                  itemValue: openSettingsDialog
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   665
                  translateLabel: true
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   666
                )
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   667
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   668
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   669
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   670
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   671
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   672
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   673
            label: 'MENU_Help'
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   674
            translateLabel: true
7415
746d97a85c4c #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 7363
diff changeset
   675
            startGroup: conditionalRight
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   676
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   677
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   678
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   679
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   680
                  label: 'ChangesBrowser Documentation'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   681
                  itemValue: openHTMLDocument:
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   682
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   683
                  argument: 'tools/cbrowser/TOP.html'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   684
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   685
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   686
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   687
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   688
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   689
                  label: 'About ChangesBrowser...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   690
                  itemValue: openAboutThisApplication
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   691
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   692
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   693
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   694
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   695
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   696
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   697
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   698
         )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   699
        nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   700
        nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   701
      )
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   702
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   703
    "Modified: / 25-12-2011 / 11:21:56 / cg"
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   704
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   705
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   706
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   707
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   708
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   709
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   710
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   711
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   712
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   713
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   714
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   715
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   716
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   717
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   718
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   719
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   720
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   721
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   722
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   723
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   724
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   725
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   726
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   727
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   728
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   729
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   730
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   731
            hideMenuOnActivated: false
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   732
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   733
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   734
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   735
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   736
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   737
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   738
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   739
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   740
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   741
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   742
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   743
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   744
            hideMenuOnActivated: false
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   745
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   746
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   747
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   748
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   749
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   750
      )
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   751
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   752
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   753
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   754
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   755
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   756
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   757
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   758
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   759
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   760
    (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
   761
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   762
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   763
	    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
   764
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   765
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   766
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   767
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   768
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   769
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   770
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   771
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   772
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   773
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   774
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   775
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   776
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   777
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   778
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   779
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   780
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   781
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   782
readXMLChangesFromFile:changeFileName inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   783
    |s set|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   784
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   785
    s := changeFileName asFilename readStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   786
    set := self readXMLChangesFrom:s inBackground:inBackground.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   787
    s close.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   788
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   789
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   790
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   791
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   792
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   793
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   794
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   795
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   796
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   797
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   798
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   799
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   800
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   801
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   802
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   803
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   804
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   805
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   806
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   807
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   808
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   809
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   810
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   811
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   812
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   813
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   814
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   815
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   816
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   817
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   818
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   819
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   820
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   821
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   822
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   823
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   824
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   825
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   826
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   827
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   828
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   829
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   830
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   831
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   832
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   833
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   834
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   835
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   836
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   837
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   838
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   839
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   840
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   841
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   842
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   843
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   844
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   845
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   846
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   847
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   848
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   849
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   850
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   851
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   852
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   853
        changeListSelectionHolder := nil asValue.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   854
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   855
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   856
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   857
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   858
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   859
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   860
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   861
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   862
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   863
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   864
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   865
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   866
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   867
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   868
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   869
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   870
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   871
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   872
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   873
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   874
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   875
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   876
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   877
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   878
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   879
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   880
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   881
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   882
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   883
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   884
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   885
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   886
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   887
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   888
hasSelection
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   889
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   890
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   891
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   892
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   893
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   894
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   895
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   896
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   897
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   898
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   899
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   900
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   901
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   902
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   903
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   904
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   905
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   906
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   907
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   908
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   909
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   910
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   911
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   912
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   913
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   914
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   915
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   916
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   917
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   918
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   919
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   920
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   921
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   922
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   923
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   924
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   925
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   926
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   927
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   928
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   929
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   930
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   931
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   932
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   933
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   934
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   935
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   936
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   937
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   938
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   939
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   940
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   941
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   942
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   943
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   944
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   945
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   946
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   947
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   948
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   949
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   950
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   951
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   952
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   953
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   954
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   955
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   956
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   957
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   958
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   959
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   960
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   961
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   962
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   963
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   964
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   965
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   966
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   967
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   968
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   969
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   970
    "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
   971
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   972
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   973
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   974
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   975
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
   976
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   977
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   978
correctableError:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   979
    "compiler notifys us of an error - this should really not happen since
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   980
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   981
     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
   982
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   983
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   984
    ShowWarningDialogs == true ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   985
	self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   986
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   987
	Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   988
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   989
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   990
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   991
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   992
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   993
    "compiler notifys us of a warning"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   994
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   995
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   996
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   997
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   998
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   999
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1000
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1001
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1002
    "compiler notifys us of an error - this should really not happen since
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1003
     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
  1004
     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
  1005
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1006
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1007
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1008
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1009
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1010
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1011
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1012
error:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1013
    "compiler notifys us of an error - this should really not happen since
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1014
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1015
     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
  1016
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1017
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1018
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1019
    (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
  1020
        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
  1021
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1022
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1023
    "if more than a singe change is applied,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1024
     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
  1025
    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
  1026
        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
  1027
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1028
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1029
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1030
             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
  1031
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1032
            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
  1033
                          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
  1034
                          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
  1035
                          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
  1036
                          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
  1037
                          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
  1038
                          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
  1039
                          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
  1040
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1041
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1042
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1043
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1044
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1045
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1046
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1047
        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
  1048
            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
  1049
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1050
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1051
        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
  1052
            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
  1053
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1054
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1055
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1056
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1057
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1058
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1059
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1060
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1061
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1062
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1063
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1064
     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
  1065
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1066
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1067
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1068
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1069
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1070
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1071
warning:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1072
    "compiler notifys us of a warning - ignore it"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1073
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1074
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1075
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1076
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1077
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1078
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1079
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1080
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1081
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1082
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1083
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1084
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1085
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1086
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1087
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1088
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1089
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1090
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1091
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1092
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1093
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1094
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1095
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1096
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1097
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1098
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1099
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1100
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1101
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1102
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1103
    (key == #Delete) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1104
	self sensor shiftDown ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1105
	    self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1106
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1107
	    self doDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1108
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1109
	^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1110
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1111
    (key == #BackSpace) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1112
	self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1113
	^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1114
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1115
    (key == #Accept) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1116
	self doApply.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1117
	^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1118
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1119
    (key == #Find) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1120
	self findClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1121
	^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1122
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1123
    (key == #FindPrev) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1124
	self findPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1125
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1126
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1127
    (key == #FindNext) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1128
	self findNext.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1130
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1131
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1132
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1133
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1134
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1135
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1136
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1137
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1138
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1139
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1140
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1141
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1142
    self label:someMessage
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1143
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1144
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1145
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1146
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1147
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1148
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1149
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1150
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1151
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1152
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1153
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1154
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1155
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1156
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1157
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1158
    doCompare ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1159
	self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1160
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1161
	changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1162
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1163
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1164
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1165
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1166
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1167
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1168
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1169
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1170
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1171
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1172
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1173
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1174
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1175
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1176
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1177
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1178
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1179
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1180
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1181
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1182
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1183
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1184
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1185
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1186
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1187
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1188
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1189
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1190
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1191
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1192
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1193
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1194
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1195
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1196
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1197
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1198
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1199
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1200
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1201
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1202
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1203
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1204
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1205
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1206
                ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1207
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1208
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1209
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1210
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1211
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1212
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1213
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1214
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1215
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1216
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1217
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1218
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1219
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1220
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1221
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1222
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1223
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1224
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1225
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1226
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1227
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1228
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1229
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1230
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1231
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1232
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1233
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1234
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1235
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1236
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1237
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1238
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1239
                 #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1240
                          ('Delete All for Classes'         doDeleteClassAll                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1241
                          ('Delete All for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1242
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1243
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1244
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1245
                 #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1246
                          ('Delete All for Class'         doDeleteClassAll                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1247
                          ('Delete All for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1248
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1249
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1250
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1251
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1252
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1253
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1254
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1255
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1256
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1257
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1258
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1259
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1260
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1261
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1262
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1263
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1264
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1265
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1266
                      ('Fileout & Delete All for Class' doFileoutAndDeleteClassAll     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1267
                      ('CheckIn & Delete All for Class' doCheckinAndDeleteClassAll     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1268
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1269
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1270
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1271
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1272
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1273
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1274
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1275
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1276
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1277
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1278
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1279
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1280
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1281
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1282
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1283
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1284
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1285
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1286
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1287
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1288
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1289
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1290
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1291
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1292
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1293
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1294
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1295
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1296
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1297
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1298
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1299
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1300
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1301
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1302
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1303
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1304
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1305
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1306
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1307
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1308
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1309
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1310
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1311
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1312
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1313
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1314
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1315
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1316
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1317
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1318
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1319
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1320
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1321
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1322
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1323
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1324
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1325
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1326
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1327
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1328
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1329
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1330
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1331
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1332
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1333
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1334
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1335
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1336
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1337
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1338
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1339
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1340
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1341
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1342
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1343
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1344
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1345
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1346
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1347
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1348
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1349
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1350
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1351
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1352
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1353
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1354
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1355
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1356
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1357
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1358
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1359
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1360
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1361
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1362
initialize
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1363
    |panel v upperFrame buttonPanel menuPanel mH toolbarMenu tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1364
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1365
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1366
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1367
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1368
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1369
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1370
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1371
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1372
    encodingIfKnown := nil.
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1373
    autoCompare := (DefaultAutoCompare ? false) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1374
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1375
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1376
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1377
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1378
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1379
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1380
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1381
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1382
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1383
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1384
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1385
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1386
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1387
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1388
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1389
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1390
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1391
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1392
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1393
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1394
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1395
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1396
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1397
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1398
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1399
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1400
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1401
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1402
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1403
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1404
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1405
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1406
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1407
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1408
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1409
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1410
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1411
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1412
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1413
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1414
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1415
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1416
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1417
        toolbarMenu menu:(self toolbarMenu).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1418
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1419
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1420
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1421
        mH := mH + tmH + 1.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1422
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1423
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1424
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1425
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1426
    panel := VariableVerticalPanel origin:(0.0 @ mH)
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1427
                                   corner:(1.0 @ 1.0)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1428
                              borderWidth:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1429
                                       in:self.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1430
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1431
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1432
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1433
        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
  1434
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1435
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1436
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1437
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1438
        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
  1439
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1440
        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
  1441
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1442
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1443
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1444
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1445
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1446
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1447
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1448
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1449
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1450
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1451
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1452
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1453
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1454
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1455
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1456
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1457
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1458
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1459
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1460
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1461
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1462
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1463
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1464
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1465
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1466
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1467
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1468
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1469
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1470
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1471
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1472
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1473
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1474
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1475
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1476
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1477
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1478
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1479
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1480
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1481
    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
  1482
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1483
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1484
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1485
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1486
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1488
    lbl := Label label:'Current' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1489
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1490
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1491
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1492
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1493
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1494
    lbl := Label label:'Change' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1495
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1496
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1497
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1498
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1499
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1500
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1501
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1502
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1503
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1504
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1505
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1506
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1507
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1508
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1509
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1510
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1511
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1512
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1513
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1514
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1515
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1516
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1517
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1518
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1519
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1520
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1521
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1522
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1523
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1524
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1525
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1526
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1527
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1528
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1529
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1530
    "Modified: / 03-01-2012 / 15:28:45 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1531
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1532
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1533
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1534
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1535
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1536
    self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1537
    changeListView action:[:lineNr | self changeSelection:lineNr].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1538
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1539
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1540
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1541
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1542
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1543
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1544
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1545
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1546
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1547
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1548
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1549
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1550
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1551
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1552
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1553
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1554
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1555
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1556
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1557
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1558
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1559
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1560
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1561
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1562
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1563
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1564
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1565
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1566
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1567
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1568
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1569
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1570
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1571
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1572
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1573
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1574
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1575
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1576
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1577
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1578
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1579
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1580
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1581
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1582
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1583
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1584
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1585
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1586
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1587
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1588
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1589
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1590
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1591
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1592
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1593
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1594
            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
  1595
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1596
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1597
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1598
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1599
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1600
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1601
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1602
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1603
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1604
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1605
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1606
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1607
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1608
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1609
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1610
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1611
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1612
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1613
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1614
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1615
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1616
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1617
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1618
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1619
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  1620
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1621
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1622
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1623
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1624
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1625
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1626
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1627
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1628
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1629
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1630
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1631
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1632
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1633
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1634
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1635
openSettingsDialog
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1636
    |settingsList settingsApp|
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1637
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1638
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1639
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1640
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1641
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1642
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1643
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1644
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1645
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1646
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1647
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1648
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1649
    settingsApp := SettingsDialog new.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1650
    "/ settingsApp requestor:self.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1651
    settingsApp installSettingsEntries:settingsList.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1652
    settingsApp allButOpen.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1653
    settingsApp window label:('Debugger Settings').
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1654
    settingsApp openWindow.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1655
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1656
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1657
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1658
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1659
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1660
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1661
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1662
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1663
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1664
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1665
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1666
    self class autoSelectNext ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1667
	(changeNr <= self numberOfChanges) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1668
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1669
	    self changeSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1670
	    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1671
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1672
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1673
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1674
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1675
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1676
    "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
  1677
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1678
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1679
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1680
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1681
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1682
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1683
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1684
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1685
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1686
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1687
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1688
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1689
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1690
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1691
    changeNr < last ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1692
	self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1693
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1694
	last == 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1695
	    last := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1696
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1697
	changeListView setSelection:last .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1698
	self changeSelection:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1699
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1700
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  1701
    "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
  1702
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1703
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1704
beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1705
    UserPreferences current beepInEditor ifTrue:[                
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1706
        super beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1707
    ]
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1708
!
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1709
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1710
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1711
    "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
  1712
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1713
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1714
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  1715
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1716
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1717
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1718
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1719
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1720
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1721
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1722
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1723
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1724
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1725
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1726
        answer := (self confirmWithCancel:(resources
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1727
                    stringWithCRs:'%1 is an autoloaded class.\I can only compare the methods source if its loaded first.\\Shall the class be loaded now ?'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1728
                    with:cls name allBold)).
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1729
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1730
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1731
    answer isNil ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1732
        "cancel the operation"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1733
        AbortAllOperationRequest raise.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1734
        "not reached"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1735
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1736
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1737
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1738
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1739
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1740
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1741
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1742
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1743
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1744
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1745
    ^ false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1746
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1747
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1748
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1749
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1750
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1751
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1752
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1753
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1754
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1755
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1756
isChangeSetBrowser
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1757
    ^ false
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1758
!
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1759
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1760
makeDiffViewInvisible
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1761
    diffViewBox lower
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1762
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1763
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1764
makeDiffViewVisible
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1765
    diffViewBox raise
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1766
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1767
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1768
nameSpaceForApply
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1769
    applyInOriginalNameSpace value ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1770
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1771
    ].
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1772
    ^ Smalltalk.
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1773
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1774
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1775
newLabel:how
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1776
    |l|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1777
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  1778
    l := self class defaultLabel.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  1779
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  1780
        l := l , ': ', changeFileName
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1781
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1782
    l := l , ' ' , how.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1783
    self label:l
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1784
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  1785
    "Created: / 08-09-1995 / 19:32:04 / claus"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  1786
    "Modified: / 12-11-2006 / 16:23:53 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1787
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1788
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1789
oldSourceForParseTree:parseTree
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1790
    |selector thisClass method superClass thisClassSym ownerClass receiver classGlobalNode|
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1791
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1792
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1793
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1794
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1795
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1796
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1797
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1798
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1799
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1800
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1801
    selector == #'removeSelector:' ifTrue:[
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  1802
        thisClass := Error handle:[:ex | ] do:[ receiver evaluate ]. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1803
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1804
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1805
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1806
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1807
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1808
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1809
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1810
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1811
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1812
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1813
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1814
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1815
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1816
    selector == #'comment:' ifTrue:[
9715
3be7736915bb changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
  1817
        Parser undefinedVariableError handle:[:ex |
3be7736915bb changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
  1818
        ] do:[
3be7736915bb changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
  1819
            thisClass := receiver evaluate.
3be7736915bb changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
  1820
        ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1821
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1822
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1823
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1824
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1825
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1826
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1827
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1828
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1829
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1830
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1831
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1832
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1833
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1834
            receiver selector == #compiledMethodAt: ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1835
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1836
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1837
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1838
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1839
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1840
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1841
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1842
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1843
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1844
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1845
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1846
                selector == #category: ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1847
                    method category = parseTree arg1 evaluate ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1848
                        ^ '(' , method mclass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1849
                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1850
                ] ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1851
                    method package = parseTree arg1 evaluate ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1852
                        ^ '(' , method mclass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1853
                    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1854
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1855
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1856
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1857
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1858
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1859
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1860
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1861
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1862
            receiver selector == #class ifTrue:[
9718
e6466884cb4e changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9715
diff changeset
  1863
                Parser undefinedVariableError handle:[:ex |
e6466884cb4e changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9715
diff changeset
  1864
                ] do:[
e6466884cb4e changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9715
diff changeset
  1865
                    thisClass := receiver evaluate.
e6466884cb4e changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9715
diff changeset
  1866
                ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1867
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1868
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1869
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1870
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1871
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1872
                    ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1873
                        ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1874
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1875
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1876
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1877
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1878
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1879
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1880
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1881
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1882
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1883
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1884
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1885
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1886
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1887
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1888
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1889
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1890
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1891
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1892
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1893
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1894
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1895
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1896
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1897
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1898
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1899
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1900
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1901
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1902
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1903
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1904
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1905
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1906
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1907
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1908
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1909
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1910
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1911
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1912
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1913
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1914
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1915
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1916
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1917
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1918
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1919
            ownerClass isNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1920
                ^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1921
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1922
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1923
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1924
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1925
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1926
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1927
            thisClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1928
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1929
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1930
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1931
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1932
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1933
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1934
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1935
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  1936
9718
e6466884cb4e changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9715
diff changeset
  1937
    "Modified: / 29-01-2011 / 11:51:28 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1938
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1939
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1940
parseExpression:chunk
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1941
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1942
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1943
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1944
parseExpression:text inNameSpace:nameSpace
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1945
    |parser p|
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1946
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1947
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1948
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1949
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1950
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1951
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1952
    parser := Parser for:(ReadStream on:text).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1953
    parser parserFlags allowQualifiedNames:true.
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1954
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1955
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1956
    ] do:[
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1957
        p := parser 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1958
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1959
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1960
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1961
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1962
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1963
    ].
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1964
    ^ p
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1965
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1966
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1967
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1968
    "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
  1969
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1970
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1971
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1972
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1973
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1974
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1975
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1976
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1977
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1978
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1979
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1980
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1981
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1982
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1983
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1984
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1985
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1986
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1987
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1988
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1989
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1990
setChangeList
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1991
    "extract type-information from changes and stuff into top selection
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1992
     view"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1993
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1994
    changeListView setList:changeHeaderLines expandTabs:false redraw:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1995
    changeListView invalidate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1996
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1997
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1998
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1999
    "Modified: / 18.5.1998 / 14:29:10 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2000
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2001
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2002
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2003
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2004
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2005
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2006
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2007
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2008
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2009
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2010
showNotFound
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2011
    |savedCursor|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2012
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2013
    savedCursor := cursor.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2014
    [
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2015
	self cursor:(Cursor cross).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2016
	self beep.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2017
	Delay waitForMilliseconds:300.
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  2018
    ] ensure:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2019
	self cursor:savedCursor
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2020
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2021
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2022
    "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
  2023
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2024
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2025
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2026
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2027
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2028
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2029
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2030
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2031
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2032
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2033
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2034
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2035
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2036
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2037
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2038
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2039
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2040
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2041
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2042
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2043
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2044
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2045
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2046
    "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
  2047
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2048
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2049
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2050
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2051
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2052
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2053
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2054
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2055
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2056
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2057
    "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
  2058
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2059
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2060
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2061
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2062
    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
  2063
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2064
    "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
  2065
     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
  2066
    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
  2067
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2068
    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
  2069
        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
  2070
            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
  2071
                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
  2072
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2073
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2074
    ] 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
  2075
        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
  2076
            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
  2077
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2078
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2079
                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
  2080
                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
  2081
                    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
  2082
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2083
                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
  2084
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2085
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2086
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2087
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2088
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2089
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2090
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2091
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2092
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2093
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2094
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2095
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2096
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2097
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2098
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2099
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2100
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2101
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2102
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2103
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2104
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2105
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2106
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2107
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2108
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2109
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2110
    "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
  2111
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2112
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2113
    ^ changeIsFollowupMethodChange at:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2114
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2115
    "Created: / 6.2.1998 / 13:03:39 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2116
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2117
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2118
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2119
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2120
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2121
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2122
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2123
    (self classNameOfChange:changeNr) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2124
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2125
	 get the chunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2126
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2127
	chunk := changeChunks at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2128
	"mhmh - empty ??"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2129
	chunk notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2130
	    (chunk startsWith:'''---') ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2131
		words := chunk asCollectionOfWords.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2132
		words size > 2 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2133
		    (words at:2) = 'snapshot' ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2134
			^ true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2135
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2136
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2137
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2138
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2139
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2140
    ^ false
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2141
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2142
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2143
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2144
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2145
     (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
  2146
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2147
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2148
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2149
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2150
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2151
    (name endsWith:' class') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2152
	name := name copyWithoutLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2153
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2154
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2155
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2156
    "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
  2157
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2158
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2159
extractSelectorOfMethodChange:changeNr
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2160
    "return a method-changes selector, or nil if its not a methodChange"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2161
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2162
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2163
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2164
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2165
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2166
        (self classNameOfChange:changeNr) notNil ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2167
            chunk := changeChunks at:changeNr.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2168
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2169
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2170
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2171
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2172
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2173
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2174
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2175
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2176
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2177
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2178
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2179
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2180
                sel := aParseTree arguments at:1.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2181
                sel isConstant ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2182
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2183
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2184
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2185
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2186
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2187
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2188
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2189
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2190
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2191
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2192
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2193
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2194
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2195
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2196
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2197
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2198
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2199
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2200
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2201
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2202
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2203
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2204
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2205
    "Created: 24.11.1995 / 14:30:46 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2206
    "Modified: 5.9.1996 / 17:12:50 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2207
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2208
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2209
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2210
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2211
     (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
  2212
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2213
    |chunk aParseTree recTree sel name arg1Tree isMeta prevMethodDefNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2214
     words changeStream fullParseTree ownerTree ownerName oldDollarSetting|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2215
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2216
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2217
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2218
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2219
    "
5145
5e2add158e16 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5144
diff changeset
  2220
    name := changeClassNames at:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2221
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2222
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2223
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2224
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2225
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2226
    prevMethodDefNr := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2227
    [changeIsFollowupMethodChange at:prevMethodDefNr] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2228
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2229
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2230
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2231
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2232
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2233
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2234
    chunk := changeChunks at:prevMethodDefNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2235
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2236
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2237
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2238
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2239
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2240
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2241
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2242
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2243
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2244
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2245
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2246
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2247
    "/ fix it - otherwise, it cannot be parsed
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2248
    (chunk endsWith:'primitiveDefinitions:') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2249
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2250
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2251
    (chunk endsWith:'primitiveFunctions:') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2252
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2253
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2254
    (chunk endsWith:'primitiveVariables:') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2255
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2256
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2257
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2258
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2259
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2260
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2261
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2262
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2263
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2264
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2265
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2266
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2267
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2268
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2269
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2270
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2271
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2272
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2273
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2274
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  2275
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2276
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2277
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2278
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2279
        ^ 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
  2280
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2281
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2282
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2283
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2284
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2285
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2286
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2287
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2288
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2289
    recTree := aParseTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2290
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2291
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2292
     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
  2293
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2294
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2295
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2296
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2297
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2298
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2299
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2300
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2301
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2302
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2303
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2304
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2305
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2306
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2307
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2308
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2309
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2310
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2311
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2312
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2313
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2314
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2315
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2316
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2317
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2318
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2319
        (recTree notNil and:[recTree ~~ #Error]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2320
            isMeta := false.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2321
            recTree isUnaryMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2322
                (recTree selector ~~ #class) ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2323
                "id class methodsFor:..."
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2324
                recTree := recTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2325
                isMeta := true.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2326
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2327
            recTree isPrimary ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2328
                name := recTree name.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2329
                isMeta ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2330
                    name := name , ' class'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2331
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2332
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2333
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2334
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2335
        "more strange things"
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2336
        ^ nil
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2337
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2338
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2339
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2340
     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
  2341
    "
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  2342
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2343
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  2344
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2345
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2346
        "/ privacy information.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2347
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2348
        changeStream := self streamForChange:changeNr.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2349
        changeStream notNil ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2350
            chunk := changeStream nextChunk.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2351
            changeStream close.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2352
            fullParseTree := self parseExpression:chunk.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2353
            (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2354
                fullParseTree := nil
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2355
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2356
                fullParseTree isMessage ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2357
                    fullParseTree := nil
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2358
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2359
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2360
            "/ actually, the nil case cannot happen
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2361
            fullParseTree notNil ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2362
                aParseTree := fullParseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2363
                sel := aParseTree selector.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2364
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2365
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2366
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2367
        arg1Tree := aParseTree arg1.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2368
        (arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2369
            name := arg1Tree value asString.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2370
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2371
            "/ is it a private-class ?
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2372
            ('*privateIn:' match:sel) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2373
                ownerTree := aParseTree args last.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2374
                ownerName := ownerTree name asString.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2375
                name := ownerName , '::' , name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2376
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2377
            ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2378
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2379
        "very strange"
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2380
        ^ nil
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2381
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2382
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2383
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2384
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2385
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2386
    (sel == #removeClass:) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2387
        (recTree notNil
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2388
        and:[recTree ~~ #Error
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2389
        and:[recTree isPrimary
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2390
        and:[recTree name = 'Smalltalk']]]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2391
            arg1Tree := aParseTree arg1.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2392
            (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2393
                name := arg1Tree name.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2394
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2395
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2396
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2397
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2398
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2399
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2400
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2401
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2402
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2403
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2404
    or:[sel == #privacy:]]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2405
        (recTree notNil
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2406
        and:[recTree ~~ #Error
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2407
        and:[recTree isMessage
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2408
        and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2409
            isMeta := false.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2410
            recTree := recTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2411
            recTree isUnaryMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2412
                (recTree selector ~~ #class) ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2413
                "id class "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2414
                recTree := recTree receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2415
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2416
            recTree isPrimary ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2417
                isMeta ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2418
                    name := name , ' class'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2419
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2420
                name := recTree name.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2421
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2422
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2423
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2424
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2425
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2426
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2427
    "Modified: / 13.2.2000 / 15:05:28 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2428
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2429
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2430
numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2431
    ^ changePositions size
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2432
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2433
    "Created: 3.12.1995 / 18:15:39 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2434
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2435
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2436
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2437
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2438
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2439
     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
  2440
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  2441
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2442
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2443
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2444
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2445
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2446
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2447
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2448
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2449
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2450
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2451
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2452
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2453
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2454
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2455
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2456
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2457
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2458
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2459
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2460
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2461
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2462
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2463
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2464
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2465
"/        ^ name copyWithoutLast:6
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2466
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2467
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2468
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2469
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2470
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2471
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2472
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2473
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2474
     - 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
  2475
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2476
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2477
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2478
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2479
    name := changeClassNames at:changeNr.
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2480
    name isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2481
	name := self fullClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2482
	name isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2483
	    changeClassNames at:changeNr put:#nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2484
	].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2485
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2486
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2487
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2488
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2489
    "Modified: / 6.12.1995 / 17:06:31 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2490
    "Created: / 5.11.2001 / 18:09:46 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2491
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2492
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2493
selectorOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2494
    "return a method-changes selector, or nil if its not a methodChange"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2495
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2496
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2497
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2498
    changeSelectors size >= changeNr ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2499
	sel := changeSelectors at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2500
	sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2501
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2502
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2503
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2504
    sel notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2505
	changeSelectors isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2506
	    changeSelectors := OrderedCollection new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2507
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2508
	changeSelectors grow:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2509
	changeSelectors at:changeNr put:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2510
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2511
    ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2512
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2513
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2514
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2515
    "return a method-changes source code, or nil if its not a methodChange."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2516
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2517
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2518
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2519
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2520
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2521
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2522
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2523
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2524
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2525
    ] ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2526
        chunk := (changeChunks at:changeNr).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2527
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2528
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2529
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2530
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2531
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2532
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2533
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2534
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2535
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2536
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2537
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2538
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2539
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2540
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2541
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2542
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2543
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2544
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2545
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2546
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2547
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2548
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2549
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2550
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2551
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2552
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2553
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2554
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2555
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2556
    "Created: / 5.9.1996 / 17:11:32 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2557
    "Modified: / 13.2.2000 / 15:05:45 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2558
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2559
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2560
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2561
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2562
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2563
    |aStream encoding decoder|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2564
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2565
    (changeNr between:1 and:changePositions size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2566
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2567
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2568
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2569
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2570
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2571
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2572
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2573
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2574
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2575
        decoder := CharacterEncoder encoderFor:encodingIfKnown.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2576
        aStream := EncodedStream stream:aStream encoder:decoder.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2577
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2578
4599
9a95e5ae08ad code rewritten to be independent of stream zero-base
Claus Gittinger <cg@exept.de>
parents: 4497
diff changeset
  2579
    aStream position1Based:(changePositions at:changeNr).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2580
    ^ aStream
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2581
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2582
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2583
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2584
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2585
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2586
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2587
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2588
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2589
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2590
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2591
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2592
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2593
    "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
  2594
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2595
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2596
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2597
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2598
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2599
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2600
    (info := f info) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2601
	self newLabel:'(unaccessable)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2602
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2603
	(info modificationTime) > changeFileTimestamp ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2604
	    self newLabel:'(outdated)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2605
	    autoUpdate value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2606
		self doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2607
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2608
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2609
	    self newLabel:''
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2610
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2611
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2612
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2613
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2614
    "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
  2615
    "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
  2616
    "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
  2617
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2618
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2619
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2620
    "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
  2621
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2622
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2623
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2624
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2625
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2626
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2627
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2628
    "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
  2629
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2630
     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
  2631
     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
  2632
        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
  2633
                '+' -> 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
  2634
                '-' -> 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
  2635
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2636
                '=' -> 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
  2637
                '~' -> 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
  2638
        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
  2639
        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
  2640
                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
  2641
                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
  2642
                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
  2643
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2644
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2645
     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
  2646
     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
  2647
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2648
    |inStream i f askedForEditingClassSource myProcess myPriority myPrioRange encoding decoder|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2649
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2650
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  2651
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2652
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2653
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2654
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2655
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2656
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2657
    (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
  2658
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2659
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2660
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2661
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  2662
    f exists ifFalse:[^ self].
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
  2663
    inStream :=  f readStream.
5715
3682c9e4fb0a skip and hide encoding chunk
ca
parents: 5703
diff changeset
  2664
6173
4ba4589e4952 guessEncoding now implemented in CharacterEncoder
Claus Gittinger <cg@exept.de>
parents: 6162
diff changeset
  2665
    encoding := CharacterEncoder guessEncodingOfStream:inStream.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2666
    encoding notNil 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
  2667
        decoder := CharacterEncoder encoderFor:encoding.
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
  2668
        inStream := EncodedStream stream:inStream encoder:decoder.
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
  2669
        inStream skipEncodingChunk.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2670
    ].
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2671
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2672
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  2673
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  2674
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2675
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2676
    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
  2677
        "
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
  2678
         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
  2679
         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
  2680
        "
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
  2681
        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
  2682
            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
  2683
            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
  2684
            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
  2685
            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
  2686
        ].
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
  2687
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
  2688
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2689
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2690
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2691
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  2692
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2693
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2694
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2695
            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
  2696
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2697
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2698
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2699
            reader noColoring:(NoColoring == true).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2700
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2701
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2702
            editingClassSource := reader thisIsAClassSource.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2703
            changeChunks := reader changeChunks.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2704
            changeClassNames := reader changeClassNames.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2705
            changeHeaderLines := reader changeHeaderLines.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2706
            changePositions := reader changePositions.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2707
            changeTimeStamps := reader changeTimeStamps.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2708
            changeIsFollowupMethodChange := reader changeIsFollowupMethodChange.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2709
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  2710
            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
  2711
        ] 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
  2712
            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
  2713
            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
  2714
                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
  2715
                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
  2716
            ].
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
  2717
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2718
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2719
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2720
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2721
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  2722
    "Modified: / 27-08-1995 / 23:06:55 / claus"
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2723
    "Modified: / 07-02-2012 / 17:36:32 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2724
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2725
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2726
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2727
    "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
  2728
     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
  2729
     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
  2730
     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
  2731
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2732
     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
  2733
     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
  2734
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
  2735
    |inStream outStream tempfile stamp f encoding decoder|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2736
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2737
    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
  2738
        (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
  2739
        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
  2740
            ^ 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
  2741
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2742
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2743
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
  2744
    [
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
  2745
        inStream := changeFileName asFilename readStream.
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
  2746
    ] 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
  2747
        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
  2748
        ^ 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
  2749
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2750
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2751
        tempfile := Filename newTemporaryIn:nil.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2752
        tempfile exists ifTrue:[tempfile remove].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2753
        [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2754
            outStream := tempfile writeStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2755
        ] on:FileStream openErrorSignal do:[:ex|
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2756
            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
  2757
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2758
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2759
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2760
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2761
"/        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2762
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2763
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2764
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2765
        encoding notNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2766
            decoder := CharacterEncoder encoderFor:encoding.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2767
            inStream := EncodedStream stream:inStream encoder:decoder.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2768
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2769
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2770
        self withCursor:(Cursor write) do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2771
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2772
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2773
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2774
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2775
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2776
                tempfile exists ifTrue:[tempfile remove].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2777
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2778
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2779
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2780
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2781
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2782
                1 to:nChanges do:[:index |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2783
                    inStream position1Based:(changePositions at:index).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2784
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2785
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2786
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2787
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2788
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2789
                        (stamp := changeTimeStamps at:index) notNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2790
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2791
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2792
                        ].
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
  2793
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2794
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2795
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2796
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2797
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2798
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2799
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2800
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2801
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2802
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2803
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2804
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2805
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2806
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2807
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2808
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2809
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2810
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2811
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2812
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2813
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2814
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2815
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2816
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2817
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2818
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2819
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2820
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2821
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2822
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2823
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2824
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2825
                    ]
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
  2826
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2827
                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
  2828
            ].
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
  2829
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2830
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2831
            f := changeFileName asFilename.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2832
            f renameTo:(f withSuffix:'bak').
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2833
            tempfile renameOrCopyTo:changeFileName.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2834
            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
  2835
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2836
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2837
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2838
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2839
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2840
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2841
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2842
    "Modified: / 02-12-1996 / 22:29:15 / stefan"
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2843
    "Modified: / 03-02-2012 / 11:01:20 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2844
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2845
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2846
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2847
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2848
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2849
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2850
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2851
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2852
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2853
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2854
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2855
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2856
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2857
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2858
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2859
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2860
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2861
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2862
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2863
        sawExcla := true.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2864
        chunk := changeChunks at:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2865
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2866
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2867
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2868
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2869
    chunk withoutSeparators isEmpty ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2870
        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
  2871
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2872
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2873
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2874
    fileName := aFileNameOrFileNameString asFilename.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2875
    fileName exists ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2876
        encoding := CharacterEncoder guessEncodingOfFile:fileName.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2877
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2878
        encoding := #utf8.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2879
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2880
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2881
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2882
        outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2883
    ] on:FileStream openErrorSignal do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2884
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2885
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2886
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2887
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2888
    encoding notNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2889
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderFor:encoding).
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2890
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2891
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2892
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2893
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2894
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2895
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2896
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2897
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2898
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2899
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2900
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2901
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2902
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2903
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2904
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2905
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2906
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2907
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2908
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2909
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2910
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2911
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2912
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2913
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2914
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2915
    "Modified: / 6.2.1998 / 13:03:54 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2916
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2917
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2918
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
  2919
    "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
  2920
     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
  2921
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2922
    |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
  2923
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2924
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2925
    aStream := self streamForChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2926
    aStream isNil ifTrue:[^ self].
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2927
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2928
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2929
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2930
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  2931
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  2932
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  2933
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  2934
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  2935
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2936
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2937
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2938
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  2939
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  2940
            "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
  2941
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  2942
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  2943
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2944
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2945
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2946
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2947
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2948
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2949
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2950
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2951
            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
  2952
                "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
  2953
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2954
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2955
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2956
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2957
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2958
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2959
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2960
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2961
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2962
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2963
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2964
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2965
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2966
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2967
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2968
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2969
                            ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2970
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2971
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2972
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2973
                                    methodsForChunk := (changeChunks at:changeNr).
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2974
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2975
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2976
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2977
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2978
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2979
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2980
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2981
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2982
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2983
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2984
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2985
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2986
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2987
                                        orgClassName := className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2988
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2989
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2990
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2991
                                            (ownerName endsWith:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2992
                                                ownerName := ownerName copyWithoutLast:1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2993
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2994
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2995
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2996
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2997
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2998
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2999
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3000
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3001
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3002
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3003
                                        changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3004
                                            changeClass := Smalltalk at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3005
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3006
                                        [changeClass isNil] whileTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3007
                                            (NameSpace allNameSpaces
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3008
                                                contains:[:ns | (nsClass := (ns at:className)) notNil])
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3009
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3010
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3011
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3012
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3013
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3014
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3015
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3016
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3017
                                            className := Dialog
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3018
                                                            request:'No class ''' , className , ''' for change. Add to which class ?'
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3019
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3020
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3021
                                            className size == 0 ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3022
                                                ^ self
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3023
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3024
                                            alternativeClass := Smalltalk classNamed:className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3025
                                            alternativeClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3026
                                                changeClass := alternativeClass
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3027
                                            ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3028
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3029
                                        methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3030
                                        methodsForChunk := changeClass name , methodsForChunk.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3031
                                    ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3032
                                    reader := Compiler evaluate:methodsForChunk notifying:self.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3033
                                    reader fileInFrom:aStream notifying:self passChunk:false single:true.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3034
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3035
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3036
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3037
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3038
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3039
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3040
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3041
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3042
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3043
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3044
    "/ if I am showing the changes file, dont update it
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3045
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3046
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3047
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3048
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3049
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3050
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3051
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3052
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3053
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3054
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3055
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3056
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3057
    "Modified: / 07-02-2012 / 17:39:48 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3058
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3059
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3060
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3061
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3062
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3063
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3064
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3065
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3066
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3067
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3068
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3069
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3070
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3071
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3072
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3073
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3074
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  3075
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3076
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3077
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3078
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3079
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3080
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3081
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3082
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3083
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3084
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3085
compareChange:changeNr
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3086
    "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
  3087
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3088
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3089
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3090
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3091
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3092
    "compare a change with current version.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3093
     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
  3094
     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
  3095
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3096
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3097
     parser sel oldMethod outcome showDiff d t1 t2 selector isLoaded beep superClass thisClassSym varsHere varsInChange addedVars removedVars
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3098
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3099
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3100
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3101
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3102
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  3103
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  3104
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  3105
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3106
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3107
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3108
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3109
        chunk := (changeChunks at:changeNr).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3110
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3111
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3112
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3113
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3114
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  3115
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3116
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3117
        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
  3118
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3119
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3120
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3121
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3122
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3123
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3124
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3125
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3126
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3127
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3128
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3129
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3130
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3131
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3132
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3133
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3134
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3135
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3136
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3137
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3138
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3139
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3140
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3141
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3142
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3143
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3144
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3145
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3146
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3147
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3148
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3149
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3150
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3151
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3152
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3153
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3154
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3155
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3156
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3157
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3158
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3159
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3160
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3161
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3162
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3163
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3164
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3165
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3166
                        (selector endsWith:':privateIn:') ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3167
                            ownerClass := (parseTree arguments at:5) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3168
                            ownerClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3169
                                thisClass := ownerClass privateClassesAt:thisClassSym.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3170
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3171
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3172
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3173
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3174
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3175
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3176
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3177
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3178
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3179
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3180
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3181
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3182
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3183
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3184
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3185
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3186
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3187
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3188
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3189
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3190
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3191
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3192
                                            ((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
  3193
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3194
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3195
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3196
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3197
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3198
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3199
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3200
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3201
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3202
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3203
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3204
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3205
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3206
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3207
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3208
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3209
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3210
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3211
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3212
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3213
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3214
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3215
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3216
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3217
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3218
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3219
                                        addedVars := varsInChange select:[:eachVar | (varsHere includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3220
                                        removedVars := varsHere select:[:eachVar | (varsInChange includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3221
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3222
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3223
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3224
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3225
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3226
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3227
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3228
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3229
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3230
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3231
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3232
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3233
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3234
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3235
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3236
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3237
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3238
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3239
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3240
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3241
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3242
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3243
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3244
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3245
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3246
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3247
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3248
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3249
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3250
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3251
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3252
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3253
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3254
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3255
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3256
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3257
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3258
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3259
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3260
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3261
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3262
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3263
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3264
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3265
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3266
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3267
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3268
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3269
                thisClass notNil ifTrue:[
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3270
                (thisClass isKindOf:UndefinedVariable) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3271
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3272
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3273
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3274
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3275
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3276
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3277
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3278
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
6820
4e8815b9e661 Do not autoload class when comparing changes.
Stefan Vogel <sv@exept.de>
parents: 6682
diff changeset
  3279
                        owner := Smalltalk loadedClassNamed:ownerName.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3280
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3281
                            self checkClassIsLoaded:owner.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3282
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3283
                    ].
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3284
                    thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3285
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3286
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3287
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3288
                    (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3289
                        outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3290
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3291
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3292
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3293
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3294
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3295
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3296
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3297
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3298
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3299
                            cat := parseTree arg1 evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3300
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3301
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3302
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3303
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3304
                    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3305
                    do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3306
                        parser := Parser parseMethod:newSource in:thisClass.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3307
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3308
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3309
                        sel := parser selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3310
                        oldMethod := thisClass compiledMethodAt:sel.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3311
                        oldMethod notNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3312
                            (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  3313
"/                                Transcript showCR:'category changed.'.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3314
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3315
                            oldSource := oldMethod source.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3316
                            (oldSource = newSource) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3317
                                outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3318
                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3319
                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3320
                                oldSource isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3321
                                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3322
                                    outcome := 'No source for compare.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3323
                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3324
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3325
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3326
                                    "/ compare for tabulator <-> space changes
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3327
                                    "/ before showing diff ...
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3328
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3329
                                    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3330
                                    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3331
                                    t1 = t2 ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3332
                                        outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3333
                                        isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3334
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3335
                                        outcome := 'Source changed.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3336
                                        showDiff := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3337
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3338
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3339
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3340
                                        "/ check if only historyLine diffs
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3341
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3342
                                        (HistoryManager notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3343
                                        and:[HistoryManager isActive]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3344
                                            (HistoryManager withoutHistoryLines:newSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3345
                                            =
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3346
                                            (HistoryManager withoutHistoryLines:oldSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3347
                                            ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3348
                                                outcome := 'Same source (history only)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3349
                                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3350
                                                showDiff := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3351
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3352
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3353
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3354
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3355
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3356
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3357
                            isLoaded ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3358
                                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3359
                                outcome := 'Method does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3360
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3361
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3362
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3363
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3364
                        outcome := 'Change is unparsable (parse error).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3365
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3366
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3367
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3368
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  3369
                            d := DiffCodeView
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  3370
                                    openOn:oldSource label:(resources string:'Current version (in image)')
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  3371
                                    and:newSource label:(resources string:'Change version').
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3372
                            d label:'method differences'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3373
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3374
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3375
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3376
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3377
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3378
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3379
                ]
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3380
            ]] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3381
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3382
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3383
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3384
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3385
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3386
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3387
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3388
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3389
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3390
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3391
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3392
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3393
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3394
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3395
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3396
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3397
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3398
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3399
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3400
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3401
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3402
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3403
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3404
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3405
    "Created: / 24-11-1995 / 14:30:46 / cg"
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3406
    "Modified: / 18-01-2011 / 17:56:04 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3407
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3408
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3409
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3410
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3411
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3412
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3413
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3414
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3415
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3416
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3417
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3418
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3419
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3420
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3421
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3422
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3423
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3424
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3425
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3426
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3427
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3428
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3429
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3430
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3431
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3432
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3433
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3434
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3435
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3436
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3437
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3438
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3439
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3440
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3441
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3442
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3443
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3444
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3445
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3446
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3447
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3448
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3449
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3450
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3451
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3452
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3453
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3454
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3455
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3456
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3457
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3458
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3459
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3460
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3461
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3462
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3463
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3464
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3465
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3466
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3467
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3468
                    ^ 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
  3469
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3470
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3471
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3472
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3473
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3474
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3475
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3476
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3477
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3478
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3479
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3480
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3481
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3482
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3483
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3484
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3485
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3486
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3487
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3488
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3489
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3490
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3491
                ^ 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
  3492
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3493
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3494
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3495
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3496
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3497
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3498
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3499
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3500
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3501
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3502
     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
  3503
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3504
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3505
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3506
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3507
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3508
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3509
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3510
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3511
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3512
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3513
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3514
     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
  3515
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3516
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3517
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3518
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3519
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3520
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3521
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3522
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3523
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3524
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3525
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  3526
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3527
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3528
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3529
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3530
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3531
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3532
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3533
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3534
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3535
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3536
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3537
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3538
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3539
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3540
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3541
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3542
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3543
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3544
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3545
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3546
        str := WriteStream on:String new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3547
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3548
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3549
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3550
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3551
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3552
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3553
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3554
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3555
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3556
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3557
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3558
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3559
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3560
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3561
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3562
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3563
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3564
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3565
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3566
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3567
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3568
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3569
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3570
                aStream position1Based:(changePositions at:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3571
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3572
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3573
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3574
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3575
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3576
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3577
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3578
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3579
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3580
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3581
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3582
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3583
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3584
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3585
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3586
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3587
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3588
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3589
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3590
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3591
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3592
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3593
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3594
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3595
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3596
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3597
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3598
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3599
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3600
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3601
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3602
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3603
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3604
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3605
                                ]
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3606
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3607
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3608
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3609
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3610
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3611
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3612
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3613
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3614
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3615
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3616
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3617
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3618
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3619
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3620
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3621
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3622
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3623
                                types at:changeNr put:#removeSelector
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3624
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3625
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3626
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3627
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3628
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3629
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3630
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3631
                            (chunk startsWith:snapshotPrefix) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3632
                                str := chunk readStream position1Based:snapshotNameIndex.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3633
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3634
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3635
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3636
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3637
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3638
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3639
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3640
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3641
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3642
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3643
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3644
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3645
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3646
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3647
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3648
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3649
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3650
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3651
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3652
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3653
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3654
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3655
         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
  3656
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3657
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3658
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3659
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3660
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3661
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3662
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3663
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3664
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3665
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3666
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3667
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3668
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3669
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3670
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3671
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3672
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3673
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3674
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3675
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3676
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3677
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3678
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3679
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3680
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3681
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3682
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3683
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3684
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3685
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3686
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3687
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3688
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3689
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3690
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3691
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3692
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3693
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3694
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3695
        (deleteSet size > 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3696
            changeListView setSelection:nil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3697
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3698
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3699
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3700
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3701
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3702
            self setChangeList.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3703
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3704
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3705
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3706
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3707
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3708
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3709
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3710
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3711
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3712
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3713
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3714
    "Created: / 19-11-2001 / 22:03:42 / cg"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3715
    "Modified: / 13-11-2006 / 11:00:03 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3716
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3717
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3718
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3719
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3720
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3721
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3722
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3723
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3724
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3725
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3726
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3727
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3728
    stop to:start by:-1 do:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3729
	self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3730
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  3731
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3732
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3733
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3734
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3735
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3736
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3737
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  3738
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3739
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3740
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3741
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3742
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3743
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3744
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3745
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3746
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3747
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3748
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3749
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3750
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3751
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3752
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3753
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3754
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3755
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3756
    anyChanges := true.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3757
    changeChunks removeIndex:changeNr.
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3758
    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3759
    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3760
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3761
    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3762
    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3763
    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3764
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3765
    "Modified: 18.11.1995 / 17:08:44 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3766
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3767
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3768
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
  3769
    "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
  3770
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3771
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3772
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3773
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3774
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3775
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3776
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3777
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3778
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3779
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3780
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3781
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3782
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3783
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3784
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3785
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3786
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3787
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3788
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3789
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3790
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3791
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3792
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3793
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3794
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3795
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3796
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3797
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3798
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3799
	    (self selectorOfMethodChange:index) == selector ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3800
		self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3801
		numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3802
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3803
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3804
	index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3805
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3806
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3807
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3808
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3809
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3810
    "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
  3811
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3812
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3813
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3814
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3815
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3816
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3817
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3818
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3819
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3820
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3821
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3822
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3823
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3824
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3825
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3826
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3827
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3828
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3829
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3830
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3831
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3832
    anyChanges := true.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3833
    changeChunks removeIndex:changeNr.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3834
    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3835
    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3836
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3837
    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3838
    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3839
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3840
    "Created: / 7.3.1997 / 16:28:32 / cg"
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3841
    "Modified: / 7.2.1998 / 19:59:11 / cg"
1496
978b3c3565c9 #silentDeleteInternalChange: copy-paste error
Stefan Vogel <sv@exept.de>
parents: 1473
diff changeset
  3842
    "Modified: / 26.2.1998 / 18:20:48 / stefan"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3843
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3844
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3845
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3846
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3847
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3848
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3849
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3850
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3851
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3852
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3853
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3854
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3855
    |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
  3856
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3857
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3858
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3859
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3860
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3861
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3862
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3863
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3864
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3865
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3866
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3867
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3868
    ] ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3869
        chunk := (changeChunks at:changeNr).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3870
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3871
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3872
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3873
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3874
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3875
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3876
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3877
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3878
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3879
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3880
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3881
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3882
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3883
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3884
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3885
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3886
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3887
            newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3888
            oldSource := self oldSourceForParseTree:parseTree.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3889
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3890
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3891
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3892
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3893
                newSource := aStream nextChunk.
8515
339ef180dbc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8494
diff changeset
  3894
                Error 
339ef180dbc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8494
diff changeset
  3895
                    handle:[ ]
339ef180dbc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8494
diff changeset
  3896
                    do:[
339ef180dbc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8494
diff changeset
  3897
                        thisClass := parseTree receiver evaluate.
339ef180dbc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8494
diff changeset
  3898
                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3899
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3900
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3901
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3902
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3903
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3904
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3905
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3906
                        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
  3907
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3908
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3909
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  3910
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3911
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3912
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3913
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3914
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3915
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3916
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  3917
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3918
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3919
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3920
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3921
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3922
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3923
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  3924
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3925
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3926
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3927
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  3928
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3929
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3930
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3931
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3932
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3933
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3934
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3935
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3936
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3937
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3938
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3939
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3940
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3941
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3942
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3943
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3944
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3945
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3946
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3947
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3948
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3949
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3950
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3951
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3952
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3953
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3954
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3955
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3956
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3957
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3958
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3959
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3960
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3961
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3962
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3963
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3964
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3965
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3966
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3967
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3968
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3969
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3970
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3971
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3972
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3973
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3974
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3975
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3976
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3977
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3978
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3979
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3980
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3981
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3982
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3983
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3984
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3985
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3986
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3987
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3988
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3989
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3990
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3991
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3992
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3993
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3994
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3995
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3996
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3997
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3998
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3999
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4000
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4001
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4002
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4003
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4004
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4005
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4006
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4007
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4008
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4009
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4010
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4011
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4012
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4013
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4014
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4015
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4016
    "Created: / 24-11-1995 / 14:30:46 / cg"
7710
5ceec26ef095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7709
diff changeset
  4017
    "Modified: / 06-03-2007 / 14:21:35 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4018
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4019
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4020
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4021
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4022
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4023
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4024
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4025
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4026
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4027
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4028
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4029
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4030
                          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
  4031
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4032
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4033
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4034
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4035
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4036
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4037
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4038
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4039
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4040
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4041
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4042
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4043
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4044
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4045
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4046
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4047
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4048
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4049
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4050
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4051
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4052
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4053
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4054
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4055
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4056
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  4057
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4058
    anyChanges ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4059
	self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4060
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4061
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4062
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4063
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4064
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4065
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4066
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4067
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4068
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4069
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4070
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4071
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4072
	askForSearchString:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4073
	initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4074
	directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4075
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4076
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4077
	^ cancelBlock value
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4078
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4079
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4080
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4081
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4082
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4083
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4084
	    changeNrShown := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4085
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4086
	self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4087
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4088
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4089
	    changeNrShown := 0.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4090
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4091
	self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4092
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4093
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4094
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4095
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4096
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4097
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4098
    |searchString direction|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4099
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4100
    direction := #forward.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4101
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4102
    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4103
	|box nextButton prevButton|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4104
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4105
	box := ex parameter.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4106
	nextButton := box okButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4107
	prevButton := Button label:(resources string:'Previous').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4108
	prevButton action:[direction := #backward. box okPressed.].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4109
	box addButton:prevButton after:nextButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4110
	nextButton label:(resources string:'Next').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4111
	ex proceed.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4112
    ] do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4113
	searchString := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4114
		request:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4115
		initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4116
		onCancel:nil.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4117
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4118
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4119
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4120
	^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4121
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4122
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4123
    ^ searchString
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4124
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4125
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4126
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4127
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4128
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4129
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4130
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4131
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4132
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4133
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4134
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4135
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4136
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4137
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4138
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4139
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4140
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4141
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4142
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4143
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4144
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4145
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4146
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4147
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4148
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4149
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4150
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4151
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4152
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4153
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4154
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4155
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4156
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4157
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4158
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4159
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4160
    self changeListSelectionHolder value:lineNumbers.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4161
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4162
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4163
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4164
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4165
        changeNrShown := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4166
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4167
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4168
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4169
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  4170
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  4171
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4172
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4173
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  4174
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4175
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4176
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  4177
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  4178
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4179
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4180
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4181
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4182
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4183
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4184
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4185
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4186
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4187
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4188
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4189
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4190
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4191
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4192
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4193
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4194
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  4195
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  4196
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4197
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4198
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4199
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4200
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4201
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4202
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4203
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4204
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4205
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4206
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4207
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4208
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4209
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4210
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4211
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4212
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4213
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4214
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4215
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4216
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4217
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4218
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4219
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4220
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4221
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4222
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4223
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4224
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4225
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4226
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
  4227
    "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
  4228
     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
  4229
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4230
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4231
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4232
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4233
    className isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4234
        ^ exceptionBlock value:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4235
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4236
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4237
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4238
    (className endsWith:' class') ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4239
        className := className copyWithoutLast:6.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4240
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4241
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4242
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4243
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4244
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4245
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4246
            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
  4247
                "/ 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
  4248
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4249
                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
  4250
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4251
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4252
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4253
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4254
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4255
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4256
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4257
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4258
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4259
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4260
        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
  4261
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4262
        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
  4263
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4264
    (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
  4265
        "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
  4266
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4267
            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
  4268
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4269
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4270
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4271
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4272
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4273
    cls isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4274
        ^ exceptionBlock value:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4275
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4276
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4277
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4278
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4279
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4280
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4281
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4282
doApply
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4283
    "user wants a change to be applied"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4284
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4285
    self withSelectedChangesDo:[:changeNr |
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4286
        (self applyChange:changeNr) ifFalse:[
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4287
            ^ self "/ cancel
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4288
        ].
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4289
        self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4290
    ]
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4291
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4292
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4293
doApplyAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4294
    "user wants all changes to be applied"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4295
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  4296
    self withExecuteCursorDo:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4297
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4298
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4299
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4300
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4301
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4302
        "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
  4303
         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
  4304
        multipleApply := lastNr > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4305
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4306
        1 to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4307
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4308
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4309
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4310
        self autoSelectLast
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4311
    ]
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  4312
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4313
    "Modified: 21.1.1997 / 22:26:30 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4314
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4315
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4316
doApplyClassFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4317
    "user wants all changes for this class from 1 to changeNr to be applied"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4318
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4319
    self withSingleSelectedChangeDo:[: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
  4320
        |thisClassName classNameToApply lastChange
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4321
         lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4322
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4323
        classNameToApply := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4324
        classNameToApply 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
  4325
            self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4326
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4327
            "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
  4328
             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
  4329
            multipleApply := changeNr ~= 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4330
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4331
            1 to:changeNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4332
                thisClassName := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4333
                thisClassName = classNameToApply ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4334
                    changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4335
                    self applyChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4336
                    lastChange := changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4337
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4338
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4339
            self autoSelect:changeNr+1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4340
        ]
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4341
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4342
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4343
    "Modified: 21.1.1997 / 22:26:04 / cg"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4344
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4345
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4346
doApplyClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4347
    "user wants all changes for this class from changeNr to be applied"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4348
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4349
    self withSingleSelectedChangeDo:[: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
  4350
        |thisClassName classNameToApply lastChange
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4351
         lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4352
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4353
        classNameToApply := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4354
        classNameToApply 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
  4355
            self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4356
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4357
            lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4358
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4359
            "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
  4360
             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
  4361
            multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4362
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4363
            changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4364
                thisClassName := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4365
                thisClassName = classNameToApply ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4366
                    changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4367
                    self applyChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4368
                    lastChange := changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4369
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4370
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4371
            self autoSelect:lastChange.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4372
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4373
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4374
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4375
    "Modified: 21.1.1997 / 22:26:04 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4376
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4377
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4378
doApplyFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4379
    "user wants all changes from 1 to changeNr to be applied"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4380
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4381
    self withSingleSelectedChangeDo:[: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
  4382
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4383
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4384
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4385
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4386
        "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
  4387
         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
  4388
        multipleApply := changeNr ~= 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4389
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4390
        1 to:changeNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4391
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4392
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4393
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4394
        self autoSelect:changeNr+1.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4395
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4396
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4397
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4398
doApplyRest
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4399
    "apply all changes from changeNr to the end"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  4400
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4401
    self withSingleSelectedChangeDo:[: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
  4402
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4403
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4404
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4405
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4406
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4407
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4408
        "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
  4409
         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
  4410
        multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4411
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4412
        changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4413
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4414
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4415
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4416
        self autoSelect:self numberOfChanges.
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4417
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4418
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4419
    "Modified: 21.1.1997 / 22:25:29 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4420
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4421
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4422
doApplyToConflictOrEnd
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4423
    "apply all changes from changeNr to either a conflict (i.e. method exists)
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4424
     or the end."
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4425
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4426
    self withSingleSelectedChangeDo:[: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
  4427
        |lastNr "{ Class: SmallInteger }"|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4428
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4429
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4430
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4431
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4432
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4433
        "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
  4434
         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
  4435
        multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4436
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4437
        changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4438
            | cls sel |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4439
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4440
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4441
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4442
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4443
            ifTrue:[
9006
4c53a23241d2 changed: #doApplyToConflictOrEnd
Claus Gittinger <cg@exept.de>
parents: 8985
diff changeset
  4444
                (cls includesSelector:sel) 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
  4445
                    self autoSelect:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4446
                    ^ self
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4447
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4448
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4449
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4450
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4451
        self autoSelect:self numberOfChanges.
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4452
    ]
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4453
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4454
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4455
doBrowse
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4456
    "user wants a browser on the class of a change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4457
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4458
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4459
	|cls|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4460
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4461
	cls := self classOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4462
	cls notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4463
	    UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4464
		openInClass:cls
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4465
		selector:(self selectorOfMethodChange:changeNr)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4466
	]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4467
    ]
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4468
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4469
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4470
doBrowseImplementors
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4471
    "open an implementors-browser"
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4472
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4473
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4474
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4475
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4476
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4477
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4478
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4479
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4480
		    request:'Selector to browse implementors of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4481
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4482
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4483
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4484
	    browseImplementorsMatching:selector.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4485
    ]
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4486
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4487
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4488
doBrowseSenders
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4489
    "user wants a browser on the class of a change"
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4490
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4491
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4492
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4493
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4494
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4495
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4496
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4497
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4498
		    request:'Selector to browse senders of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4499
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4500
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4501
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4502
	    browseAllCallsOn:selector asSymbol.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4503
    ]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4504
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4505
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4506
doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4507
    "first checkin the selected changes class then delete all changes
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4508
     for it."
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4509
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4510
    |classes answer logTitle checkinInfo|
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4511
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4512
"/    self theSingleSelection isNil ifTrue:[
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4513
"/        ^ self information:'Only possible if a single change is selected.'.
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4514
"/    ].
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4515
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4516
    self withExecuteCursorDo:[
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4517
        classes := IdentitySet new.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4518
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4519
        self withSelectedChangesDo:[:changeNr |
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4520
            | className class |
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4521
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4522
            className := self classNameOfChange:changeNr.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4523
            className notNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4524
                class := Smalltalk classNamed:className.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4525
                class isNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4526
                    self error:'oops - no class: ', className mayProceed:true.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4527
                ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4528
                class notNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4529
                    class := class theNonMetaclass.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4530
                    (classes includes:class) ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4531
                        class isPrivate ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4532
                            (classes includes:class owningClass) ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4533
                                answer := self confirmWithCancel:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?'
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4534
                                                                    bindWith:class owningClass name allBold) withCRs.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4535
                                answer isNil ifTrue:[^ self].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4536
                                answer ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4537
                                    classes add:class owningClass
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4538
                                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4539
                            ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4540
                        ] ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4541
                            classes add:class
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4542
                        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4543
                    ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4544
                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4545
            ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4546
        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4547
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4548
        classes size == 1 ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4549
            logTitle := classes first name.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4550
        ] ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4551
            logTitle := '%1 classes' bindWith:classes size.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4552
        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4553
        checkinInfo := SourceCodeManagerUtilities
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4554
                        getCheckinInfoFor:logTitle
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4555
                        initialAnswer:nil.
6977
784155153e91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6843
diff changeset
  4556
        checkinInfo isNil ifTrue:[^ self ].
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4557
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4558
        changeListView setSelection:nil.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4559
        classes do:[:eachClass |
6977
784155153e91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6843
diff changeset
  4560
            (SourceCodeManagerUtilities checkinClass:eachClass withInfo:checkinInfo)
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4561
                ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4562
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4563
                           from:1 to:(self numberOfChanges).
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4564
                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4565
        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4566
        self setChangeList.
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4567
    ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4568
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4569
    "Modified: / 6.9.1995 / 17:11:16 / claus"
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4570
    "Modified: / 17.11.2001 / 14:21:13 / cg"
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4571
!
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4572
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4573
doCompare
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4574
    "compare change with current system version"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4575
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4576
    classesNotToBeAutoloaded removeAll.
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4577
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4578
    self withSingleSelectedChangeDo:[:changeNr |
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4579
        self withExecuteCursorDo:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4580
            self compareChange:changeNr
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4581
        ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4582
        self newLabel:''
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4583
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4584
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  4585
    "Modified: 24.2.1996 / 19:37:19 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4586
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4587
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4588
doCompareAndCompress
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4589
    "remove all changes, which are equivalent to the current image version"
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4590
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4591
    |toDelete|
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4592
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4593
    classesNotToBeAutoloaded removeAll.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4594
    toDelete := OrderedCollection new.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4595
    self withExecuteCursorDo:[
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4596
        1 to:self numberOfChanges do:[:changeNr |
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4597
            (self compareChange:changeNr showResult:false) == true ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4598
                toDelete add:changeNr
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4599
            ]
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4600
        ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4601
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4602
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4603
    toDelete reverseDo:[:changeNr |
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4604
        self silentDeleteChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4605
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4606
    self setChangeList.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4607
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4608
     scroll back a bit, if we are left way behind the list
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4609
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4610
    changeListView firstLineShown > self numberOfChanges ifTrue:[
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4611
        changeListView makeLineVisible:self numberOfChanges
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4612
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4613
    self clearCodeView.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4614
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4615
    self newLabel:''.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4616
    classesNotToBeAutoloaded removeAll.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4617
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4618
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4619
doCompress
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4620
    "compress the change-set; this replaces multiple method-changes by the last
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4621
     (i.e. the most recent) change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4622
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4623
    self compressForClass:nil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4624
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4625
    "Modified: / 29.10.1997 / 01:03:26 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4626
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4627
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4628
doCompressClass
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4629
    "compress changes for the selected class.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4630
     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
  4631
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4632
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4633
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4634
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4635
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4636
    self selectedClassNames do:[:classNameToCompress |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4637
	self compressForClass:classNameToCompress.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4638
    ]
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4639
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4640
    "Created: / 29.10.1997 / 01:05:16 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4641
    "Modified: / 19.11.2001 / 21:55:17 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4642
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4643
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4644
doCompressSelector
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4645
    "compress changes for the selected class & selector.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4646
     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
  4647
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4648
    |classSelectorPairs|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4649
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4650
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4651
	^ self information:'Only possible if a single change is selected.'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4652
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4653
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4654
    classSelectorPairs := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4655
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4656
	| classNameToCompress selector |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4657
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4658
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4659
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4660
	    selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4661
	    selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4662
		classSelectorPairs add:(classNameToCompress -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4663
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4664
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4665
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4666
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4667
    classSelectorPairs do:[:pair |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4668
	self compressForClass:pair key selector:pair value.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4669
    ]
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4670
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4671
    "Created: / 19.11.2001 / 21:50:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4672
    "Modified: / 19.11.2001 / 22:10:08 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4673
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4674
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4675
doDelete
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4676
    "delete currently selected change(s)"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4677
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4678
    |rangeEnd rangeStart firstDeleted|
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4679
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4680
    changeListView selection size <= 5 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4681
	self withSelectedChangesReverseDo:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4682
	    self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4683
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4684
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4685
	^ self
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4686
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4687
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4688
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4689
	rangeEnd isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4690
	    rangeEnd := rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4691
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4692
	    (changeNr = (rangeEnd + 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4693
		rangeEnd := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4694
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4695
		(changeNr = (rangeStart - 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4696
		    rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4697
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4698
		    self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4699
		    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4700
		    rangeStart := rangeEnd := nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4701
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4702
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4703
	].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4704
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4705
    rangeStart notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4706
	self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4707
	firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4708
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4709
    self autoSelectOrEnd:firstDeleted
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4710
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4711
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4712
doDeleteAndSelectPrevious
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4713
    "delete currently selected change(s)"
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4714
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4715
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4716
	self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4717
	self autoSelectOrEnd:changeNr-1
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4718
    ]
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4719
!
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4720
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4721
doDeleteClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4722
    "delete all changes with same class as currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4723
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4724
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4725
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4726
    lastChangeNr := -1.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4727
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4728
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4729
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4730
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4731
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4732
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4733
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4734
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4735
	lastChangeNr := lastChangeNr max:changeNr.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4736
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4737
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4738
    overAllNumDeletedBefore := 0.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4739
    changeListView setSelection:nil.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4740
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4741
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4742
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4743
	    |numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4744
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4745
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4746
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4747
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4748
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4749
				   silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4750
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4751
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4752
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4753
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4754
	].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4755
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4756
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4757
    self setChangeList.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4758
    self autoSelectOrEnd:lastChangeNr
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4759
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4760
    "Created: / 13.12.1995 / 16:07:14 / cg"
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4761
    "Modified: / 28.1.1998 / 20:42:14 / cg"
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4762
!
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4763
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4764
doDeleteClassAndPrivateClassesAll
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4765
    "delete all changes with same class and private classes
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4766
     as currently selected change"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4767
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4768
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4769
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4770
    lastChangeNr := -1.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4771
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4772
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4773
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4774
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4775
	classNameToDelete := self ownerClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4776
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4777
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4778
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4779
	lastChangeNr := lastChangeNr max:changeNr.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4780
    ].
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4781
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4782
    overAllNumDeletedBefore := 0.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4783
    changeListView setSelection:nil.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4784
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4785
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4786
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4787
	    | changeNr numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4788
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4789
	    classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4790
		changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4791
		self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4792
				       from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4793
					 to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4794
		numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4795
				       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4796
				       from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4797
				       to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4798
		lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4799
		overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4800
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4801
	]
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4802
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4803
    self setChangeList.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4804
    self autoSelectOrEnd:lastChangeNr
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4805
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4806
    "Created: / 13.12.1995 / 16:07:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4807
    "Modified: / 28.1.1998 / 20:42:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4808
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4809
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4810
doDeleteClassFromBeginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4811
    "delete changes with same class as currently selected change from the beginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4812
     up to the selected change.
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4813
     Useful to get rid of obsolete changes before a fileout or checkin entry."
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4814
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4815
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4816
	|classNameToDelete prevSelection numDeleted|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4817
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4818
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4819
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4820
	    prevSelection := changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4821
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4822
	    numDeleted := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4823
				silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4824
				from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4825
				to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4826
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4827
	    self autoSelectOrEnd:(changeNr + 1 - numDeleted)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4828
	]
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  4829
    ].
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4830
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4831
    "Created: 13.12.1995 / 15:41:58 / cg"
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4832
    "Modified: 25.5.1996 / 12:26:34 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4833
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4834
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4835
doDeleteClassRest
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4836
    "delete rest of changes with same class as currently selected change"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4837
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4838
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4839
	| classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4840
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4841
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4842
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4843
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4844
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4845
				   from:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4846
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4847
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4848
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4849
	]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4850
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4851
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  4852
    "Modified: / 18.5.1998 / 14:25:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4853
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4854
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4855
doDeleteClassSelectorAll
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4856
    "delete all changes with same class and selector as currently selected change"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4857
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4858
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4859
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4860
    lastChangeNr := -1.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4861
    classNameSelectorPairsToDelete := Set new.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4862
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4863
	|className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4864
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4865
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4866
	selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4867
	selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4868
	    (className notNil and:[selector notNil]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4869
		classNameSelectorPairsToDelete add:(className -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4870
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4871
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4872
	lastChangeNr := lastChangeNr max:changeNr.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4873
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4874
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4875
    overAllNumDeletedBefore := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4876
    changeListView setSelection:nil.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4877
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4878
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4879
	classNameSelectorPairsToDelete do:[:pair |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4880
	    |numDeletedBefore className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4881
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4882
	    className := pair key.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4883
	    selector  := pair value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4884
	    self silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4885
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4886
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4887
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4888
				   silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4889
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4890
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4891
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4892
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4893
	].
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4894
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4895
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4896
    self setChangeList.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4897
    self autoSelectOrEnd:lastChangeNr
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4898
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4899
    "Created: / 13.12.1995 / 16:07:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4900
    "Modified: / 28.1.1998 / 20:42:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4901
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4902
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4903
doDeleteFromBeginning
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4904
    "delete all changes from 1 to the current"
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4905
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4906
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4907
	self deleteChangesFrom:1 to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4908
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4909
	self autoSelectOrEnd:changeNr
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4910
    ]
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4911
!
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4912
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4913
doDeleteRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4914
    "delete all changes from current to the end"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4915
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4916
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4917
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4918
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4919
	self autoSelectOrEnd:changeNr-1
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4920
    ]
132
claus
parents: 126
diff changeset
  4921
!
claus
parents: 126
diff changeset
  4922
claus
parents: 126
diff changeset
  4923
doFileoutAndDeleteClassAll
claus
parents: 126
diff changeset
  4924
    "first fileOut the selected changes class then delete all changes
claus
parents: 126
diff changeset
  4925
     for it."
claus
parents: 126
diff changeset
  4926
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4927
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4928
	| className class |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4929
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4930
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4931
	className notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4932
	    class := Smalltalk classNamed:className.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4933
	    class notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4934
		Class fileOutErrorSignal handle:[:ex |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4935
		    self warn:('fileout failed: ' , ex description).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4936
		] do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4937
		    class fileOut.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4938
		    self doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4939
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4940
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4941
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4942
	].
132
claus
parents: 126
diff changeset
  4943
    ]
claus
parents: 126
diff changeset
  4944
claus
parents: 126
diff changeset
  4945
    "Modified: 6.9.1995 / 17:11:16 / claus"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4946
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4947
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4948
doMakePatch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4949
    "user wants a change to be made a patch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4950
     - copy it over to the patches file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  4951
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4952
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4953
	self makeChangeAPatch:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4954
	self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4955
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4956
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4957
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4958
doMakePermanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4959
    "user wants a change to be made permanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4960
     - rewrite the source file where this change has to go"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4961
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4962
    |yesNoBox|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4963
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4964
    (self theSingleSelection) isNil ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4965
        ^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4966
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4967
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4968
    yesNoBox := YesNoBox new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4969
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4970
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4971
    yesNoBox okAction:[   |changeNr|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4972
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4973
                          changeNr := self theSingleSelection.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4974
                          changeNr notNil ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4975
                              self makeChangePermanent:changeNr.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4976
                              self autoSelect:(changeNr + 1)
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4977
                          ]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4978
                      ].
917
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4979
    yesNoBox showAtPointer.
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4980
    yesNoBox destroy
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4981
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4982
    "Modified: 7.1.1997 / 23:03:33 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4983
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4984
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4985
doSave
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4986
    "user wants a change to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4987
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4988
    |fileName|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4989
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4990
    self withSelectedChangesDo:[:changeNr |
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4991
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4992
                        requestFileNameForSave:(resources string:'Append change to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4993
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4994
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4995
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4996
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4997
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4998
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  4999
            lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5000
            self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5001
                self appendChange:changeNr toFile:fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5002
            ].
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5003
            self autoSelect:(changeNr + 1)
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5004
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5005
    ]
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5006
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5007
    "Modified: / 27-10-2010 / 11:30:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5008
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5009
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5010
doSaveClass
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5011
    "user wants changes for some class from current to end to be appended to a file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5012
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5013
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5014
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5015
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5016
    self doSaveClassFrom:1
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5017
!
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5018
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5019
doSaveClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5020
    "user wants changes for some class from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5021
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5022
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5023
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5024
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5025
    self doSaveClassFrom:1
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5026
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5027
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5028
doSaveClassFrom:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5029
    "user wants changes from current to end to be appended to a file"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5030
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5031
    |changeNr classNameToSave|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5032
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5033
    (changeNr := self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5034
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5035
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5036
    classNameToSave := self classNameOfChange:changeNr.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5037
    classNameToSave notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5038
	self saveClass:classNameToSave from:startNr
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5039
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5040
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5041
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5042
doSaveClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5043
    "user wants changes for some class from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5044
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5045
    |changeNr|
132
claus
parents: 126
diff changeset
  5046
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5047
    (changeNr := self theSingleSelection) isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5048
        ^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5049
    ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5050
    self doSaveClassFrom:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5051
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5052
    changeListView setSelection:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5053
    "/ self changeSelection:changeNr.
81
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  5054
!
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  5055
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5056
doSaveRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5057
    "user wants changes from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5058
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5059
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5060
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5061
    (changeNr := self theSingleSelection) isNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5062
        ^ self information:(resources string:'Only possible if a single change is selected.').
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5063
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5064
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5065
    fileName := Dialog
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5066
                    requestFileNameForSave:(resources string:'Append changes to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5067
                    default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5068
                    ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5069
                    abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5070
                    pattern:'*.chg'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5071
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5072
    fileName notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5073
        lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5074
        self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5075
            changeNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5076
                changeListView setSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5077
                (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5078
                    ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5079
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5080
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5081
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5082
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5083
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5084
    "Modified: / 27-10-2010 / 11:30:37 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5085
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5086
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5087
doUpdate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5088
    "reread the changes-file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5089
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5090
    self readChangesFileInBackground:true.
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  5091
    self newLabel:''.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5092
    realized ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5093
	self setChangeList.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5094
    ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5095
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5096
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5097
doWriteBack
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5098
    "write back the list onto the changes file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5099
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5100
    anyChanges 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
  5101
        (self writeBackChanges) 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
  5102
            realized 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
  5103
                self readChangesFile.
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
  5104
                realized 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
  5105
                    self setChangeList
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
  5106
                ]
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
  5107
            ]
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
  5108
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5109
    ]
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5110
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5111
    "Modified: 5.9.1996 / 17:19:46 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5112
!
126
claus
parents: 123
diff changeset
  5113
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5114
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5115
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5116
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5117
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5118
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5119
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5120
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5121
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5122
findClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5123
    "findClass menu action: let user enter a classes name, and select the next change for that class"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5124
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5125
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5126
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5127
    changeNrShown notNil ifTrue:[
8985
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5128
        current := self classNameOfChange:changeNrShown.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5129
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5130
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5131
    self
8985
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5132
        askForSearch:'Class to search for:'
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5133
        initialAnswer:current
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5134
        thenSearchUsing:[:searchString :changeNr |
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5135
                            |thisClassName|
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5136
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5137
                            thisClassName := self classNameOfChange:changeNr.
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5138
                            thisClassName notNil
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5139
                            and:[
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5140
                                (thisClassName sameAs: searchString)
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5141
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName ignoreCase:true]]]
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5142
                        ]
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5143
        onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5144
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5145
    lastSearchType := #class.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5146
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5147
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5148
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5149
findFirstForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5150
    "findNextForClass menu action: select the next change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5151
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5152
    self findNextForClassStartingAt:1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5153
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5154
    "Created: / 20-11-2006 / 16:37:56 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5155
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5156
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5157
findLastForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5158
    "findPreviousForClass menu action: select the previous change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5159
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5160
    self findPreviousForClassStartingAt:(self numberOfChanges)
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5161
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5162
    "Created: / 20-11-2006 / 16:39:15 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5163
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5164
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5165
findLastSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5166
    "findLastSnapshot menu action: select the last change which is for a snapShot-image save action"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5167
7363
c99ccc9d618c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7360
diff changeset
  5168
    "/ lastSearchType := #snapshot.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5169
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5170
    self 
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5171
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5172
        startingAt:(self numberOfChanges)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5173
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5174
    "Created: / 06-10-2006 / 11:03:39 / cg"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5175
!
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5176
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5177
findNext
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5178
    "findNext menu action: select the next change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5179
     Searches for what the last search was for; i.e. either same class or same selector"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5180
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5181
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5182
	^ self findNextForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5183
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5184
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5185
	^ self findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5186
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5187
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5188
	^ self findNextForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5189
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5190
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5191
	^ self findNextDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5192
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5193
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5194
    ^ self findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5195
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5196
    "Created: / 18.6.1998 / 22:15:00 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5197
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5198
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5199
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5200
findNextDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5201
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5202
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5203
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5204
    self findNextForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5205
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5206
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5207
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5208
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5209
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5210
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5211
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5212
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5213
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5214
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5215
findNextForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5216
    "findNextForClass menu action: select the next change for the selected changes class"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5217
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5218
    self findNextForClassStartingAt: changeNrShown + 1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5219
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5220
    "Modified: / 20-11-2006 / 16:37:49 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5221
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5222
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5223
findNextForClassStartingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5224
    "findNextForClass menu action: select the next change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5225
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5226
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5227
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5228
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5229
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5230
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5231
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5232
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5233
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5234
    self 
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5235
        findNextForWhich:[:changeNr |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5236
                |thisClass|
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5237
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5238
                thisClass := self classNameOfChange:changeNr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5239
                (thisClass = cls
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5240
                or:[cls includesMatchCharacters and:[cls match:thisClass]])]
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5241
        startingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5242
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5243
    "Created: / 20-11-2006 / 16:37:37 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5244
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5245
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5246
findNextForSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5247
    "findNextForSelector menu action: select the next change for the selected changes selector"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5248
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5249
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5250
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5251
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5252
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5253
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5254
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5255
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5256
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5257
    self findNextForWhich: [:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5258
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5259
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5260
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5261
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5262
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5263
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5264
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5265
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5266
findNextForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5267
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5268
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5269
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5270
    self findNextWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5271
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5272
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5273
findNextForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5274
    "helper: select the next change for which aBlock evaluates to true"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5275
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5276
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5277
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5278
    "Modified: / 20-11-2006 / 16:34:23 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5279
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5280
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5281
findNextForWhich:aBlock startingAt:changeNrToStartSearch
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5282
    "helper: select the next change for which aBlock evaluates to true"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5283
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5284
    self withCursor:Cursor questionMark do:[
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5285
        Object userInterruptSignal handle:[:ex |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5286
            self beep.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5287
            ^ 0
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5288
        ] do:[
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5289
            |lastNr nr|
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5290
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5291
            lastNr := self numberOfChanges.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5292
            nr := changeNrToStartSearch.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5293
            [nr <= lastNr] whileTrue:[
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5294
                (aBlock value:nr) ifTrue:[
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5295
                    changeListView setSelection:nr .
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5296
                    self changeSelection:nr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5297
                    ^ nr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5298
                ].
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5299
                nr := nr + 1.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5300
            ].
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5301
        ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5302
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  5303
    self showNotFound.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5304
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5305
    ^ 0
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5306
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5307
    "Created: / 20-11-2006 / 16:34:06 / cg"
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5308
!
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5309
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5310
findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5311
    "findNextSnapshot menu action: select the next change which is for a snapShot-image save action"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5312
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5313
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5314
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5315
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5316
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5317
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5318
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5319
findNextWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5320
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5321
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5322
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5323
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5324
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5325
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5326
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5327
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5328
    self findNextForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5329
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5330
	    |s|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5331
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5332
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5333
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5334
		(searchString includesMatchCharacters not
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5335
			    and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5336
		or:[ searchString includesMatchCharacters
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5337
			    and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5338
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5339
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5340
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5341
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5342
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5343
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5344
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5345
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5346
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5347
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5348
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5349
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5350
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5351
findPrevious
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5352
    "findPrevious menu action: select the previous change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5353
     Searches for what the last search was for; i.e. either same class or same selector"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5354
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5355
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5356
	^ self findPreviousForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5357
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5358
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5359
	^ self findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5360
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5361
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5362
	^ self findPreviousForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5363
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5364
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5365
	^ self findPreviousDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5366
    ].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5367
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5368
    ^ self findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5369
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5370
    "Created: / 18.6.1998 / 22:15:15 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5371
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5372
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5373
findPreviousDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5374
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5375
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5376
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5377
    self findPreviousForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5378
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5379
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5380
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5381
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5382
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5383
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5384
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5385
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5386
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5387
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5388
findPreviousForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5389
    "findPreviousForClass menu action: select the previous change for the selected changes class"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5390
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5391
    self findPreviousForClassStartingAt:(changeNrShown - 1)
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5392
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5393
    "Modified: / 20-11-2006 / 16:39:04 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5394
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5395
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5396
findPreviousForClassStartingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5397
    "findPreviousForClass menu action: select the previous change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5398
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5399
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5400
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5401
    lastSearchType := #class.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5402
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5403
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5404
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5405
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5406
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5407
    self 
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5408
        findPreviousForWhich:
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5409
            [:changeNr |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5410
                    |thisClass|
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5411
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5412
                    thisClass := self classNameOfChange:changeNr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5413
                    (thisClass = cls
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5414
                    or:[cls includesMatchCharacters and:[cls match:thisClass]])]
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5415
        startingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5416
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5417
    "Created: / 20-11-2006 / 16:38:37 / cg"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5418
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5419
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5420
findPreviousForSelector
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5421
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5422
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5423
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5424
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5425
    lastSearchType := #selector.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5426
    changeNrShown isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5427
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5428
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5429
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5430
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5431
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5432
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5433
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5434
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5435
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5436
		(thisSelector = sel
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5437
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5438
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5439
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5440
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5441
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5442
findPreviousForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5443
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5444
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5445
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5446
    self findPreviousWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5447
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5448
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5449
findPreviousForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5450
    "helper: select the previous change for which aBlock evaluates to true"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5451
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5452
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5453
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5454
    "Modified: / 06-10-2006 / 11:01:38 / cg"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5455
!
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5456
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5457
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5458
    "helper: select the previous change for which aBlock evaluates to true"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5459
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5460
    self withCursor:Cursor questionMark do:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5461
        Object userInterruptSignal handle:[:ex |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5462
            self beep.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5463
            ^ 0
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5464
        ] do:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5465
            |nr|
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5466
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5467
            nr := changeNrToStartSearch.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5468
            [nr >= 1] whileTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5469
                (aBlock value:nr) ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5470
                    changeListView setSelection:nr.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5471
                    self changeSelection:nr.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5472
                    ^ nr
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5473
                ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5474
                nr := nr - 1.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5475
            ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5476
        ]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5477
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  5478
    self showNotFound.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5479
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5480
    ^ 0
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5481
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5482
    "Created: / 06-10-2006 / 11:01:09 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5483
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5484
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5485
findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5486
    "findPreviousSnapshot menu action: select the previous change which is for a snapShot-image save action"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5487
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5488
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5489
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5490
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5491
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5492
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5493
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5494
findPreviousWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5495
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5496
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5497
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5498
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5499
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5500
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5501
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5502
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5503
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5504
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5505
	    |s includesMatchCharacters|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5506
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5507
	    includesMatchCharacters := searchString includesMatchCharacters.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5508
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5509
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5510
		(includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5511
		or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5512
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5513
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5514
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5515
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5516
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5517
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5518
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5519
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5520
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5521
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5522
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5523
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5524
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5525
findSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5526
    "findSelector menu action: let user enter a selector, and select the next change for that selector"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5527
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5528
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5529
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5530
    changeNrShown notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5531
	current := self selectorOfMethodChange:changeNrShown.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5532
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5533
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5534
    self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5535
	askForSearch:'Selector to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5536
	initialAnswer:current
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5537
	thenSearchUsing:[:searchString :changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5538
			    |thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5539
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5540
			    thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5541
			    (thisSelector = searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5542
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5543
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5544
	onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5545
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5546
    lastSearchType := #selector.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5547
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5548
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5549
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5550
findString
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5551
    |searchString directionHolder|
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5552
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5553
    lastSearchType := #string.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5554
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5555
    searchString := codeView selection.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5556
    searchString size == 0 ifTrue:[searchString := lastSearchString].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5557
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5558
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5559
	askForSearchString:'String to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5560
	initialAnswer:(searchString ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5561
	directionInto:(directionHolder := ValueHolder new).
3554
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5562
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5563
    searchString size == 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5564
	^ self
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5565
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5566
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5567
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5568
	self findPreviousWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5569
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5570
	self findNextWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5571
    ]
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5572
!
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5573
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5574
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5575
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  5576
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5577
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5578
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5579
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5580
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5581
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5582
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5583
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5584
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5585
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5586
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5587
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5588
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5589
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5590
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5591
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5592
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5593
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5594
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5595
            lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5596
            self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5597
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5598
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5599
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5600
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5601
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5602
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5603
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5604
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5605
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5606
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5607
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5608
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5609
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5610
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5611
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5612
    "Modified: / 27-10-2010 / 11:31:06 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5613
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5614
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5615
selectionCanged
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5616
self halt
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5617
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5618
    "Created: / 03-01-2012 / 15:26:36 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5619
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5620
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5621
setEnforcedNameSpace
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5622
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5623
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5624
    listOfKnownNameSpaces := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5625
    NameSpace
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5626
        allNameSpaces
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5627
            do:[:eachNameSpace |
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5628
                listOfKnownNameSpaces add:eachNameSpace name
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5629
            ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5630
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5631
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5632
    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5633
        |box|
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5634
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5635
        keepAsDefaultHolder := true asValue.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5636
        box := ex parameter.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5637
        box verticalPanel
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5638
            add:((CheckBox 
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5639
                    label:(resources string:'Use this as default in the future')) 
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5640
                    model:keepAsDefaultHolder).
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5641
        ex proceed.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5642
    ] do:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5643
        nsName := Dialog
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5644
                request:'When applying, new classes are created in nameSpace:'
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5645
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5646
                list:listOfKnownNameSpaces.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5647
    ].
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5648
    nsName isNil ifTrue:[^ self].
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5649
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5650
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5651
        applyInOriginalNameSpace value:true.
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5652
        LastEnforcedNameSpace := enforcedNameSpace := nil.
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5653
    ] ifFalse:[
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5654
        applyInOriginalNameSpace value:false.
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5655
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5656
        autoCompare value ifTrue:[
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5657
            self doUpdate
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5658
        ].
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5659
    ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5660
    KeepEnforcedNameSpace := keepAsDefaultHolder value
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5661
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5662
    "Modified: / 07-09-2006 / 15:10:25 / cg"
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5663
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5664
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5665
setEnforcedPackage
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5666
    |pkg listOfKnownPackages|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5667
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5668
    listOfKnownPackages := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5669
    Smalltalk allClassesDo:[:eachClass |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5670
				|package|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5671
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5672
				package := eachClass package.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5673
				package size > 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5674
				    listOfKnownPackages add:package
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5675
				]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5676
			   ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5677
    listOfKnownPackages := listOfKnownPackages asOrderedCollection sort.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5678
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5679
    pkg := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5680
		request:'When applying, changes go into package:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5681
		initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5682
		list:listOfKnownPackages.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5683
    pkg size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5684
	enforcedPackage := pkg
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5685
    ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5686
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5687
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5688
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5689
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5690
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5691
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5692
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5693
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5694
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5695
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5696
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5697
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5698
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5699
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5700
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5701
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5702
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5703
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5704
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5705
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5706
changeChunks
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5707
    ^ changeChunks
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5708
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5709
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5710
changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5711
    ^ changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5712
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5713
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5714
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5715
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5716
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5717
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5718
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5719
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5720
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5721
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5722
changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5723
    ^ changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5724
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5725
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5726
changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5727
    ^ changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5728
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5729
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5730
changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5731
    ^ changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5732
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5733
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5734
changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5735
    ^ changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5736
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5737
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5738
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5739
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5740
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5741
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5742
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5743
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5744
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5745
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5746
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5747
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5748
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5749
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5750
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5751
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5752
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5753
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5754
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5755
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5756
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5757
    "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
  5758
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5759
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5760
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5761
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5762
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5763
    "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
  5764
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5765
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5766
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5767
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5768
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5769
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5770
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5771
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5772
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5773
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5774
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5775
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5776
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5777
                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
  5778
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5779
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5780
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5781
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5782
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5783
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5784
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5785
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5786
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5787
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5788
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5789
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5790
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5791
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5792
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5793
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5794
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5795
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5796
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5797
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5798
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5799
    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
  5800
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5801
            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
  5802
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5803
            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
  5804
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5805
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5806
    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
  5807
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5808
            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
  5809
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5810
            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
  5811
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5812
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5813
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5814
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5815
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5816
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5817
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5818
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5819
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5820
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5821
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5822
    "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
  5823
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5824
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5825
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5826
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5827
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5828
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5829
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5830
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5831
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5832
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5833
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5834
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5835
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5836
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5837
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5838
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5839
    timeStampInfo notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5840
        entry colAt:4 put:timeStampInfo.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5841
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5842
    changeHeaderLines add:entry
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5843
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5844
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5845
processChunk
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5846
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5847
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5848
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5849
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5850
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5851
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5852
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5853
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5854
    changeChunks add:chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5855
    changeClassNames add:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5856
    changePositions add:chunkPosition.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5857
    changeTimeStamps add:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5858
    changeIsFollowupMethodChange add:false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5859
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5860
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5861
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5862
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5863
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5864
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5865
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5866
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5867
            [
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5868
                changeChunks removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5869
                changeClassNames removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5870
                changePositions removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5871
                changeTimeStamps removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5872
                changeIsFollowupMethodChange removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5873
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5874
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5875
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5876
    changeString notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5877
        self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5878
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5879
        headerLine notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5880
            changeHeaderLines add:headerLine
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5881
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5882
    ]
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5883
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5884
    "Modified: / 03-02-2012 / 11:02:36 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5885
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5886
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5887
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5888
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5889
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5890
    |askedForEditingClassSource changeClass category anyMethod
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5891
     sel cls p rec clsName done first text methodPos
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5892
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo m currentText t1 t2 methodSelector nameAndClass|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5893
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5894
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5895
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5896
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5897
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5898
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5899
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5900
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5901
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5902
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5903
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5904
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5905
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5906
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5907
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5908
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5909
    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
  5910
    (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
  5911
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5912
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5913
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5914
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5915
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5916
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5917
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5918
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5919
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5920
                classCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5921
                changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5922
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5923
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5924
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5925
                    methodCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5926
                    changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5927
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5928
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5929
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5930
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5931
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5932
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5933
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5934
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5935
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5936
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5937
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5938
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5939
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5940
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5941
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5942
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5943
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5944
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5945
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5946
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5947
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5948
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5949
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5950
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5951
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5952
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5953
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5954
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5955
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5956
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5957
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5958
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5959
        changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5960
        methodPos := inStream position1Based.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5961
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5962
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5963
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5964
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5965
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5966
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5967
            first ifFalse:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5968
                changeChunks add:chunkText.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5969
                changeClassNames add:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5970
                changePositions add:methodPos.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5971
                changeTimeStamps add:timeStampInfo.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5972
                changeIsFollowupMethodChange add:true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5973
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5974
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5975
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5976
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5977
            ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5978
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5979
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5980
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5981
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5982
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5983
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5984
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5985
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5986
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5987
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5988
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5989
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5990
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5991
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5992
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5993
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5994
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5995
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5996
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5997
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5998
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5999
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6000
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6001
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6002
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6003
                    methodChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6004
                        p := Parser
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6005
                                 parseMethodSpecification:text
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6006
                                 in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6007
                                 ignoreErrors:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6008
                                 ignoreWarnings:true.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6009
                        (p notNil and:[p ~~ #Error]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6010
                            methodSelector := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6011
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6012
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6013
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6014
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6015
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6016
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6017
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6018
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6019
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6020
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6021
                    changeType := '{ ' , category , ' }'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6022
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6023
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6024
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6025
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6026
                    changeClass isNil ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6027
                        cls := changeClass theNonMetaclass
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6028
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6029
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6030
                    (changeClass isNil or:[methodSelector isNil or:[cls isLoaded not]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6031
                        changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6032
                            changeDelta := '+'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6033
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6034
                            changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6035
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6036
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6037
                        (changeClass includesSelector:methodSelector asSymbol) ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6038
                            changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6039
                        ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6040
                            m := changeClass compiledMethodAt:methodSelector asSymbol.
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6041
                            Error handle:[:ex |
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6042
                                Transcript showCR:'Error while accessing methods current source: ',ex description.
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6043
                            ] do:[
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6044
                                currentText := m source.
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6045
                            ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6046
                            currentText notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6047
                                text asString string withoutTrailingSeparators = currentText asString string withoutTrailingSeparators ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6048
                                    changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6049
                                ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6050
                                    t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6051
                                    t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6052
                                    t1 = t2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6053
                                        changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6054
                                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6055
                                        |tree1 tree2|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6056
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6057
                                        RBParser notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6058
                                            tree1 := RBParser parseMethod:currentText onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6059
                                            tree2 := RBParser parseMethod:text onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6060
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6061
                                            tree1 = tree2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6062
                                                changeDelta := '~'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6063
                                            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6064
                                        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6065
                                    ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6066
                                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6067
                            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6068
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6069
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6070
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6071
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6072
            self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6073
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6074
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6075
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6076
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6077
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6078
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6079
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6080
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6081
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6082
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6083
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6084
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6085
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6086
processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6087
    |s changeClass sel  cls p rec clsName ownerTree ownerName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6088
     m nameAndClass|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6089
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6090
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6091
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6092
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6093
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6094
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6095
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6096
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6097
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6098
     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
  6099
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6100
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6101
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6102
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6103
        timeStampInfo := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6104
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6105
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6106
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6107
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6108
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6109
    p := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6110
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6111
        p isMessage ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6112
            sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6113
            rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6114
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6115
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6116
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6117
        (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6118
            "/ a comment only
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6119
            changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6120
            NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6121
                changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6122
                "/ changeString := changeString allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6123
                changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6124
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6125
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6126
            changeType := '(???)'.
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
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6130
    (sel == #comment:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6131
        changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6132
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6133
        changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6134
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6135
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6136
            changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6137
            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6138
            "/ changeString := clsName allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6139
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6140
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6141
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6142
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6143
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6144
                (changeClass comment = (p args at:1) evaluate) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6145
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6146
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6147
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6148
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6149
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6150
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6151
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6152
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6153
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6154
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6155
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6156
        sel := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6157
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6158
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6159
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6160
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6161
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6162
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6163
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6164
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6165
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6166
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6167
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6168
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6169
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6170
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6171
        changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6172
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6173
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6174
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6175
    (p notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6176
    and:[p ~~ #Error
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6177
    and:[p isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6178
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6179
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6180
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6181
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6182
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6183
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6184
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6185
            changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6186
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6187
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6188
            changeClass notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6189
                m := changeClass compiledMethodAt:sel asSymbol.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6190
                m notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6191
                    m category = (p args at:1) evaluate ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6192
                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6193
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6194
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6195
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6196
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6197
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6198
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6199
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6200
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6201
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6202
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6203
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6204
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6205
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6206
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6207
        changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6208
        clsName := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6209
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6210
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6211
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6212
        ('*privateIn:' match:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6213
            ownerTree := p args last.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6214
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6215
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6216
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6217
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6218
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6219
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6220
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6221
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6222
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6223
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6224
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6225
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6226
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6227
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6228
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6229
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6230
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6231
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6232
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6233
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6234
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6235
                    ((cls superclass isNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6236
                        and:[p receiver isConstant
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6237
                        and:[p receiver evaluate isNil]])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6238
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6239
                        cls superclass notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6240
                        and:[p receiver isConstant not
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6241
                        and:[cls superclass name = p receiver name]]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6242
                    ]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6243
                        cls instanceVariableString asCollectionOfWords = (p args at:2) evaluate asCollectionOfWords ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6244
                            cls classVariableString asCollectionOfWords = (p args at:3) evaluate asCollectionOfWords ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6245
                                (p args at:4) evaluate isEmpty ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6246
                                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6247
                                    ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6248
                                        "/ ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6249
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6250
                                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6251
                                        cls category = (p args at:5) evaluate ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6252
                                            changeDelta := '='.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6253
                                        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6254
                                            changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6255
                                        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6256
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6257
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6258
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6259
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6260
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6261
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6262
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6263
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6264
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6265
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6266
        (#(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6267
          #'primitiveDefinitions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6268
          #'primitiveFunctions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6269
          #'primitiveVariables:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6270
         ) includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6271
            changeType := '(class definition)'.
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6272
            clsName := rec name.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6273
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6274
            ((sel == #instanceVariableNames:)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6275
            and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6276
            and:[rec selector == #class]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6277
                clsName := rec receiver name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6278
                changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6279
                changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6280
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6281
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6282
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6283
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6284
                        changeDelta := '?'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6285
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6286
                        s := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6287
                        s = changeClass class instanceVariableString ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6288
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6289
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6290
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6291
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6292
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6293
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6294
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6295
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6296
    "Modified: / 14-08-2010 / 12:54:24 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6297
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6298
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6299
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6300
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6301
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6302
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6303
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6304
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6305
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6306
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6307
    "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
  6308
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6309
     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
  6310
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6311
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6312
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6313
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6314
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6315
                '=' -> 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
  6316
                '~' -> 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
  6317
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6318
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6319
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6320
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6321
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6322
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6323
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6324
     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
  6325
     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
  6326
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6327
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6328
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6329
    changeChunks := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6330
    changeClassNames := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6331
    changeHeaderLines := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6332
    changePositions := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6333
    changeTimeStamps := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6334
    changeIsFollowupMethodChange := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6335
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6336
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6337
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6338
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6339
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6340
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6341
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6342
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6343
        inStream skipSeparators.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6344
        chunkPosition := inStream position1Based.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6345
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6346
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6347
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  6348
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6349
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6350
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6351
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6352
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6353
    "Modified: / 27-08-1995 / 23:06:55 / claus"
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6354
    "Modified: / 10-07-2010 / 10:58:08 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6355
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6356
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  6357
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6358
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6359
version
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  6360
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.419 2012-02-07 16:43:02 cg Exp $'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6361
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6362
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6363
version_CVS
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  6364
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.419 2012-02-07 16:43:02 cg Exp $'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  6365
! !