ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Fri, 03 Feb 2006 17:31:48 +0100
changeset 6532 15fd243d05eb
parent 6530 6bb6d5670055
child 6605 255a3095ad5d
permissions -rw-r--r--
*** empty log message ***
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
"
571fd5eee315 Initial revision
claus
parents:
diff changeset
    12
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    13
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    14
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    15
StandardSystemView subclass:#ChangesBrowser
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    16
	instanceVariableNames:'changeListView codeView diffView changeFileName changeChunks
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    17
		changePositions changeClassNames changeSelectors
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    18
		changeHeaderLines changeIsFollowupMethodChange anyChanges
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    19
		changeNrShown changeNrProcessed skipSignal autoCompare
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    20
		changeFileSize changeFileTimestamp checkBlock changeTimeStamps
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    21
		tabSpec autoUpdate editingClassSource lastSearchType
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    22
		lastSearchString applyInOriginalNameSpace lastSaveFileName
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    23
		readOnly enforcedPackage enforcedNameSpace updateChangeSet
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
    24
		showingDiffs diffViewBox autoloadAsRequired encodingIfKnown'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    25
	classVariableNames:'CompressSnapshotInfo NoColoring ShowWarningDialogs DefaultIcon
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    26
		DefaultAutoCompare DefaultShowingDiffs'
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    27
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    28
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    29
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    30
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    31
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    32
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    33
		changeFileTimestamp changeChunks changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    34
		changeHeaderLines changePositions changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    35
		changeIsFollowupMethodChange autoCompare tabSpec anyChanges
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    36
		inStream thisIsAClassSource chunkText chunkPosition sawExcla
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
    37
		fullChunkText noColoring timeStampInfo changeString changeType
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
    38
		changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    39
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    40
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    41
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    42
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    43
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    44
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    45
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    46
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    47
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    48
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    49
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    50
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    51
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    52
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    53
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    54
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    55
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    56
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    57
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    58
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    61
"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    62
    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
    63
    any sourceFiles contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    64
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    65
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    66
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    67
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    68
    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
    69
    It will be completely replaced by the ChangeSetBrowser class in the near future.
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    70
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    71
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    72
    [Class variables:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    73
	CompressSnapshotInfo            if true (the default), snapshot entries
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    74
					are also compressed in the compress function.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    75
					Some users prefer them to be not compressed.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    76
					Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    77
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    78
    Notice:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    79
	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
    80
	(which did not exist when the ChangesBrowser was originally written)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    81
	and manipulate that changeSet.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    82
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    83
	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
    84
	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
    85
	subclasses (where it belongs) and give a better encapsulation and
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    86
	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
    87
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    88
	The Change hierarchy is currently been completed, and the changes browser
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    89
	will be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    90
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    91
    [author:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    92
	Claus Gittinger
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
    [start with:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    95
	ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    96
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    97
    [see also:]
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    98
	( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    99
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   100
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   101
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   102
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   103
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   104
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   105
new
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   106
    "create a new changes browser"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   107
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   108
    ^ super
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   109
	label:(self defaultLabel)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   110
	icon:(self defaultIcon)
1470
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   111
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   112
    "Modified: / 6.2.1998 / 13:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   113
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   114
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   115
openOn:aFileName
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   116
    "create a changes browser on a change file"
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   117
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   118
    |browser|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   119
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   120
    (self isXMLFile:aFileName) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   121
	browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   122
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   123
	browser := self new
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   124
    ].
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   125
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   126
    browser label:(self defaultLabel , ': ', aFileName).
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   127
    browser changeFileName:aFileName.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   128
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   129
    ^ browser
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   130
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   131
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   132
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   133
571fd5eee315 Initial revision
claus
parents:
diff changeset
   134
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   135
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   136
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   137
571fd5eee315 Initial revision
claus
parents:
diff changeset
   138
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   139
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   140
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   141
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   142
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   143
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   144
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   145
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   146
    <resource: #style (#ICON #ICON_FILE)>
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   147
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   148
    |nm i|
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   149
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   150
    (i := DefaultIcon) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   151
	i := self classResources at:'ICON' default:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   152
	i isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   153
	    nm := ClassResources at:'ICON_FILE' default:'CBrowser.xbm'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   154
	    i := Smalltalk imageFromFileNamed:nm inPackage:#'stx:libtool'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   155
	    i isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   156
		i := StandardSystemView defaultIcon
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   157
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   158
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   159
	i notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   160
	    DefaultIcon := i := i onDevice:Display
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   161
	]
1084
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   162
    ].
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   163
    ^ i
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   164
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   165
    "Modified: 19.3.1997 / 20:48:34 / ca"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   166
    "Modified: 18.4.1997 / 15:16:24 / cg"
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   167
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   168
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   169
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   170
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   171
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   172
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   173
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   174
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   175
     (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
   176
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   177
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   178
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   179
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   180
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   181
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   182
!ChangesBrowser class methodsFor:'menu specs'!
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
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   185
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   186
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   187
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   188
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   189
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   190
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   193
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   194
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   195
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   196
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   197
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   198
    ^
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   199
     #(Menu
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   200
	(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   201
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   202
	    label: 'File'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   203
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   204
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   205
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   206
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   207
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   208
		  label: 'Compress'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   209
		  itemValue: doCompress
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   210
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   211
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   212
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   213
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   214
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   215
		  label: 'Compress for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   216
		  itemValue: doCompressClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   217
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   218
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   219
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   220
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   221
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   222
		  label: 'Compress for Class && Selector'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   223
		  itemValue: doCompressSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   224
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   225
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   226
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   227
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   228
		  label: 'Compare and Compress'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   229
		  itemValue: doCompareAndCompress
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   230
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   231
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   232
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   233
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   234
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   235
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   236
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   237
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   238
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   239
		  label: 'Fileout && Delete all Changes for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   240
		  itemValue: doFileoutAndDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   241
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   242
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   243
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   244
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   245
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   246
		  label: 'CheckIn && Delete all Changes for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   247
		  itemValue: doCheckinAndDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   248
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   249
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   250
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   251
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   252
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   253
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   254
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   255
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   256
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   257
		  label: 'Save In...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   258
		  itemValue: doSave
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   259
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   260
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   261
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   262
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   263
		  label: 'Save to End In...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   264
		  itemValue: doSaveRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   265
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   266
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   267
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   268
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   269
		  label: 'Save for Class to End In...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   270
		  itemValue: doSaveClassRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   271
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   272
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   273
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   274
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   275
		  label: 'Save all for Class In...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   276
		  itemValue: doSaveClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   277
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   278
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   279
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   280
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   281
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   282
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   283
		  label: 'Writeback ClassFile'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   284
		  itemValue: doWriteBack
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   285
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   286
		  isVisible: editingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   287
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   288
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   289
		  label: 'Writeback ChangeFile'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   290
		  itemValue: doWriteBack
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   291
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   292
		  isVisible: notEditingClassSource
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   293
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   294
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   295
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   296
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   297
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   298
		  label: 'Update'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   299
		  itemValue: doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   300
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   301
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   302
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   303
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   304
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   305
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   306
		  label: 'Exit'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   307
		  itemValue: menuExit
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   308
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   309
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   310
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   311
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   312
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   313
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   314
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   315
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   316
	    label: 'Change'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   317
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   318
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   319
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   320
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   321
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   322
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   323
		  label: 'Apply'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   324
		  itemValue: doApply
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   325
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   326
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   327
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   328
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   329
		  label: 'Apply to End'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   330
		  itemValue: doApplyRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   331
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   332
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   333
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   334
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   335
		  label: 'Apply from Begin'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   336
		  itemValue: doApplyFromBeginning
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   337
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   338
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   339
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   340
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   341
		  label: 'Apply for Class to End'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   342
		  itemValue: doApplyClassRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   343
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   344
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   345
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   346
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   347
		  label: 'Apply for Class from Begin'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   348
		  itemValue: doApplyClassFromBeginning
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   349
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   350
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   351
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   352
		  enabled: hasNoSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   353
		  label: 'Apply All'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   354
		  itemValue: doApplyAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   355
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   356
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   357
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   358
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   359
		  label: 'Apply to Conflict or End'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   360
		  itemValue: doApplyToConflictOrEnd
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   361
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   362
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   363
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   364
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   365
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   366
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   367
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   368
		  label: 'Delete'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   369
		  itemValue: doDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   370
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   371
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   372
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   373
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   374
		  label: 'Delete to End'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   375
		  itemValue: doDeleteRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   376
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   377
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   378
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   379
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   380
		  label: 'Delete from Begin'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   381
		  itemValue: doDeleteFromBeginning
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   382
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   383
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   384
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   385
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   386
		  label: 'Delete for Class to End'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   387
		  itemValue: doDeleteClassRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   388
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   389
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   390
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   391
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   392
		  label: 'Delete for Class from Begin'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   393
		  itemValue: doDeleteClassFromBeginning
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   394
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   395
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   396
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   397
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   398
		  label: 'Delete all for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   399
		  itemValue: doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   400
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   401
		  isVisible: hasNoMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   402
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   403
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   404
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   405
		  label: 'Delete all for Class && its Private Classes'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   406
		  itemValue: doDeleteClassAndPrivateClassesAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   407
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   408
		  isVisible: hasNoMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   409
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   410
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   411
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   412
		  label: 'Delete all for Classes'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   413
		  itemValue: doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   414
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   415
		  isVisible: hasMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   416
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   417
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   418
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   419
		  label: 'Delete all for Classes && their Private Classes'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   420
		  itemValue: doDeleteClassAndPrivateClassesAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   421
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   422
		  isVisible: hasMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   423
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   424
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   425
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   426
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   427
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   428
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   429
		  label: 'Delete all Versions of Selected Method'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   430
		  itemValue: doDeleteClassSelectorAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   431
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   432
		  isVisible: hasNoMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   433
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   434
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   435
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   436
		  label: 'Delete all Versions of all Selected Methods'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   437
		  itemValue: doDeleteClassSelectorAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   438
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   439
		  isVisible: hasMultiSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   440
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   441
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   442
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   443
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   444
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   445
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   446
		  label: 'Compare with Current'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   447
		  itemValue: doCompare
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   448
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   449
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   450
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   451
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   452
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   453
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   454
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   455
		  label: 'Make Change a Patch'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   456
		  itemValue: doMakePatch
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   457
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   458
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   459
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   460
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   461
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   462
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   463
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   464
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   465
	    label: 'Search'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   466
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   467
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   468
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   469
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   470
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   471
		  label: 'Class...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   472
		  itemValue: findClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   473
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   474
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   475
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   476
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   477
		  label: 'Previous for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   478
		  itemValue: findPreviousForClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   479
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   480
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   481
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   482
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   483
		  label: 'Next for Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   484
		  itemValue: findNextForClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   485
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   486
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   487
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   488
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   489
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   490
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   491
		  label: 'Selector...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   492
		  itemValue: findSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   493
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   494
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   495
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   496
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   497
		  label: 'Previous for Selector'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   498
		  itemValue: findPreviousForSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   499
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   500
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   501
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   502
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   503
		  label: 'Next for Selector'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   504
		  itemValue: findNextForSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   505
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   506
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   507
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   508
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   509
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   510
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   511
		  label: 'String...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   512
		  itemValue: findString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   513
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   514
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   515
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   516
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   517
		  label: 'Previous with String'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   518
		  itemValue: findPreviousForString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   519
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   520
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   521
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   522
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   523
		  label: 'Next with String'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   524
		  itemValue: findNextForString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   525
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   526
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   527
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   528
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   529
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   530
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   531
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   532
		  label: 'Previous Difference'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   533
		  itemValue: findPreviousDifference
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   534
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   535
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   536
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   537
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   538
		  label: 'Next Difference'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   539
		  itemValue: findNextDifference
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   540
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   541
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   542
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   543
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   544
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   545
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   546
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   547
		  label: 'Previous Snapshot'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   548
		  itemValue: findPreviousSnapshot
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   549
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   550
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   551
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   552
		  enabled: hasSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   553
		  label: 'Next Snapshot'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   554
		  itemValue: findNextSnapshot
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   555
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   556
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   557
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   558
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   559
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   560
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   561
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   562
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   563
	    label: 'Browse'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   564
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   565
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   566
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   567
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   568
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   569
		  enabled: hasSingleSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   570
		  label: 'Class'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   571
		  itemValue: doBrowse
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   572
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   573
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   574
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   575
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   576
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   577
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   578
		  label: 'Senders...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   579
		  itemValue: doBrowseSenders
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   580
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   581
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   582
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   583
		  label: 'Implementors...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   584
		  itemValue: doBrowseImplementors
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   585
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   586
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   587
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   588
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   589
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   590
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   591
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   592
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   593
	    label: 'Settings'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   594
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   595
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   596
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   597
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   598
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   599
		  label: 'Auto Compare'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   600
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   601
		  indication: autoCompare
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   602
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   603
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   604
		  label: 'Autoload As Required'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   605
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   606
		  indication: autoloadAsRequired
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   607
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   608
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   609
		  label: 'Show Diffs'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   610
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   611
		  indication: showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   612
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   613
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   614
		  label: 'Auto Update'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   615
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   616
		  indication: autoUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   617
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   618
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   619
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   620
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   621
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   622
		  label: 'Add to ChangeSet when Applying'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   623
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   624
		  indication: updateChangeSet
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   625
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   626
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   627
		  label: 'Apply in Original NameSpace'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   628
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   629
		  indication: applyInOriginalNameSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   630
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   631
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   632
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   633
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   634
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   635
		  label: 'Apply into Package...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   636
		  itemValue: setEnforcedPackage
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   637
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   638
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   639
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   640
		  enabled: applyNotInOriginalNameSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   641
		  label: 'Apply into NameSpace...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   642
		  itemValue: setEnforcedNameSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   643
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   644
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   645
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   646
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   647
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   648
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   649
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   650
	 (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   651
	    label: 'Help'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   652
	    translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   653
	    startGroup: right
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   654
	    submenu:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   655
	   (Menu
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   656
	      (
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   657
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   658
		  label: 'ChangesBrowser Documentation'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   659
		  itemValue: openHTMLDocument:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   660
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   661
		  argument: 'tools/cbrowser/TOP.html'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   662
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   663
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   664
		  label: '-'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   665
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   666
	       (MenuItem
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   667
		  label: 'About ChangesBrowser...'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   668
		  itemValue: openAboutThisApplication
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   669
		  translateLabel: true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   670
		)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   671
	       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   672
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   673
	      nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   674
	    )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   675
	  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   676
	 )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   677
	nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   678
	nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   679
      )
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   680
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   681
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   682
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   683
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   684
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   685
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   686
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   687
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   688
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   689
    (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
   690
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   691
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   692
	    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
   693
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   694
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   695
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   696
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   697
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   698
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   699
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   700
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   701
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   702
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   703
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   704
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   705
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   706
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   707
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   708
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   709
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   710
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   711
readXMLChangesFromFile:changeFileName inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   712
    |s set|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   713
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   714
    s := changeFileName asFilename readStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   715
    set := self readXMLChangesFrom:s inBackground:inBackground.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   716
    s close.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   717
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   718
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   719
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   720
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   721
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   722
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   723
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   724
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   725
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   726
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   727
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   728
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   729
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   730
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   731
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   732
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   733
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   734
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   735
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   736
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   737
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   738
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   739
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   740
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   741
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   742
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   743
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   744
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   745
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   746
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   747
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   748
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   749
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   750
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   751
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   752
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   753
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   754
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   755
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   756
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   757
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   758
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   759
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   760
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   761
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   762
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   763
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   764
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   765
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   766
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   767
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   768
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   769
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   770
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   771
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   772
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   773
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   774
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   775
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   776
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   777
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   778
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   779
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   780
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   781
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   782
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   783
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   784
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   785
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   786
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   787
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   788
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   789
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   790
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   791
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   792
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   793
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   794
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   795
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   796
hasSelection
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   797
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   798
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   799
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   800
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   801
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   802
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   803
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   804
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   805
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   806
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   807
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   808
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   809
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   810
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   811
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   812
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   813
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   814
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   815
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   816
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   817
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   818
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   819
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   820
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   821
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   822
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   823
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   824
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   825
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   826
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   827
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   828
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   829
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   830
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   831
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   832
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   833
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   834
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   835
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   836
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   837
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   838
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   839
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   840
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   841
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   842
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   843
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   844
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   845
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   846
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   847
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   848
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   849
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   850
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   851
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   852
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   853
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   854
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   855
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   856
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   857
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   858
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   859
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   860
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   861
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   862
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   863
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   864
    "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
   865
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   866
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   867
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   868
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   869
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
   870
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   871
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   872
correctableError:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   873
    "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
   874
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   875
     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
   876
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   877
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   878
    ShowWarningDialogs == true ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   879
	self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   880
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   881
	Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   882
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   883
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   884
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   885
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   886
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   887
    "compiler notifys us of a warning"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   888
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   889
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   890
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   891
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   892
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   893
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   894
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   895
error:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   896
    "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
   897
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   898
     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
   899
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   900
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   901
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   902
    (changeNrProcessed ~~ changeNrShown) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   903
	self changeSelection:changeNrProcessed
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   904
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   905
    (skipSignal notNil) ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   906
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   907
	codeView highlightingErrorPosition:relPos to:relEndPos do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   908
	    |box|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   909
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   910
	    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   911
	     start dialog - make certain cleanup is done
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   912
	    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   913
	    action := OptionBox
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   914
			  request:aString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   915
			  label:'Error'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   916
			  image:(WarningBox iconBitmap)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   917
			  buttonLabels:#('Cancel' 'Skip' " 'Shut up' " 'Continue')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   918
			  values:#(#abort #skip " #shutUp " #continue)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   919
			  default:#continue
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   920
			  onCancel:#abort.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   921
	].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   922
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   923
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   924
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   925
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   926
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   927
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   928
	(action == #abort) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   929
	    AbortOperationRequest raise.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   930
	    ^ false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   931
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   932
	action == #skip ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   933
	    skipSignal raise.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   934
	    ^ false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   935
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   936
	^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   937
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   938
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
   939
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
   940
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   941
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   942
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   943
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   944
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   945
     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
   946
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   947
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   948
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   949
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   950
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
   951
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   952
warning:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   953
    "compiler notifys us of a warning - ignore it"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   954
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   955
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   956
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   957
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
   958
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   959
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   960
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   961
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   962
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   963
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   964
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   965
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   966
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   967
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   968
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   969
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   970
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   971
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   972
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   973
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   974
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   975
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   976
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   977
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
   978
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   979
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   980
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   981
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   982
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   983
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
   984
    (key == #Delete) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   985
	self sensor shiftDown ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   986
	    self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   987
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   988
	    self doDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   989
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   990
	^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   991
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
   992
    (key == #BackSpace) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   993
	self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   994
	^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
   995
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   996
    (key == #Accept) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   997
	self doApply.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   998
	^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   999
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1000
    (key == #Find) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1001
	self findClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1002
	^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1003
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1004
    (key == #FindPrev) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1005
	self findPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1006
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1007
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1008
    (key == #FindNext) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1009
	self findNext.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1010
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1011
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1012
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1013
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1014
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1015
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1016
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1017
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1018
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1019
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1020
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1021
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1022
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1023
    self label:someMessage
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1024
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1025
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1026
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1027
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1028
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1029
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1030
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1031
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1032
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1033
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1034
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1035
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1036
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1037
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1038
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1039
    doCompare ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1040
	self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1041
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1042
	changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1043
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1044
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1045
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1046
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1047
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1048
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1049
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1050
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1051
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1052
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1053
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1054
    self sensor ctrlDown ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1055
	"/ notice - findNext/prev shortKeys will search for the same thing again.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1056
	items := #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1057
			  ('Search Class...'              findClass               #Find       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1058
			  ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1059
			  ('Next for this Class'          findNextForClass        #FindNextClass      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1060
			  ('-'                                                                )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1061
			  ('Search Selector...'           findSelector                        )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1062
			  ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1063
			  ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1064
			  ('-'                                                                )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1065
			  ('Search String...'             findString                        )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1066
			  ('Previous with this String'    findPreviousForString   #FindPrevString   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1067
			  ('Next with this String'        findNextForString       #FindNextString   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1068
			  ('-'                                                                )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1069
			  ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1070
			  ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1071
		 ).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1072
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1073
	lastSearchType == #selector ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1074
	    replNext := #FindNextSelector.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1075
	    replPrev := #FindPrevSelector.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1076
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1077
	    lastSearchType == #snapshot ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1078
		replNext := #FindNextSnapshot.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1079
		replPrev := #FindPrevSnapshot.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1080
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1081
		lastSearchType == #string ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1082
		    replNext := #FindNextString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1083
		    replPrev := #FindPrevString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1084
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1085
		    replNext := #FindNextClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1086
		    replPrev := #FindPrevClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1087
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1088
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1089
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1090
	items := items deepCopy.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1091
	items do:[:each |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1092
			each replaceAll:replNext with:#FindNext.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1093
			each replaceAll:replPrev with:#FindPrev.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1094
			each replaceAny:#(FindNextClass FindPrevClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1095
					  FindNextSelector FindPrevSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1096
					  FindNextSnapshot FindPrevSnapshot
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1097
					  FindNextString FindPrevString)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1098
			     with:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1099
		 ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1100
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1101
	^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1102
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1103
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1104
    items := #(
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1105
		      ('Apply'                        doApply                    Accept)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1106
		      ('Apply to End'                 doApplyRest                      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1107
		      ('Apply from Begin'             doApplyFromBeginning             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1108
		      ('Apply for Class to End'       doApplyClassRest                 )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1109
		      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1110
		      ('Apply All'                    doApplyAll                       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1111
		      ('-'                                                             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1112
		      ('Delete'                       doDelete                   Delete)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1113
		      ('Delete to End'                doDeleteRest                     )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1114
		      ('Delete for Class to End'      doDeleteClassRest                )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1115
		      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1116
	     ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1117
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1118
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1119
	items := items ,
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1120
		 #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1121
			  ('Delete All for Classes'         doDeleteClassAll                 )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1122
			  ('Delete All for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1123
		 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1124
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1125
	items := items ,
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1126
		 #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1127
			  ('Delete All for Class'         doDeleteClassAll                 )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1128
			  ('Delete All for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
		 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1130
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1131
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1132
    items := items ,
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1133
	     #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1134
		      ('-'                                                             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1135
		      ('Compress'                     doCompress                       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1136
		      ('Compress for Class'           doCompressClass                  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1137
		      ('Compare and Compress'         doCompareAndCompress             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1138
		      ('-'                                                             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1139
		      ('Compare with current Version' doCompare                        )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1140
		      ('Browse Class'                 doBrowse                         )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1141
		      ('-'                                                             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1142
		      ('Make Change a Patch'          doMakePatch                      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1143
	     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1144
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1145
    editingClassSource ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1146
	items := items , #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1147
		      ('Fileout & Delete All for Class' doFileoutAndDeleteClassAll     )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1148
		      ('CheckIn & Delete All for Class' doCheckinAndDeleteClassAll     )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1149
			  )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1150
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1151
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1152
    items := items , #(
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1153
		      ('-'                                            )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1154
		      ('Save in...'                  doSave           )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1155
		      ('Save to End In...'           doSaveRest       )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1156
		      ('Save for Class to End In...' doSaveClassRest  )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1157
		      ('Save All for Class In...'    doSaveClassAll   )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1158
		      ('-'                                            )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1159
		     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1160
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1161
    editingClassSource ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1162
	items := items , #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1163
		      ('Writeback ClassFile'  doWriteBack )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1164
		     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1165
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1166
	items := items , #(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1167
		      ('Writeback ChangeFile' doWriteBack )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1168
		     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1169
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1170
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1171
    items := items , #(
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1172
		  ('-'                                                             )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1173
		  ('Update'                       doUpdate                         )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1174
		 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1175
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1176
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1177
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1178
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1179
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1180
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1181
    self hasSelection ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1182
	m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1183
		       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1184
		       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1185
		       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1186
		       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1187
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1188
	sel := self theSingleSelection.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1189
	sel isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1190
	    "/ multiple selections
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1191
	    m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1192
			   doDeleteClassFromBeginning
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1193
			   doCompressClass doCompare
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1194
			   doSaveClassAll doSaveClassRest doSaveRest doBrowse
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1195
			   doFileoutAndDeleteClassAll)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1196
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1197
	    (self classNameOfChange:sel) isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1198
		m disableAll:#(doApplyClassRest doDeleteClassRest
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1199
			       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1200
			       doCompressClass doCompare doMakePatch
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1201
			       doSaveClassAll doSaveClassRest doBrowse
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1202
			       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1203
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1204
	]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1205
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1206
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1207
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1208
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1209
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1210
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1211
    autoUpdate value ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1212
	m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1213
		       doDeleteClassAndPrivateClassesAll doCompress
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1214
		       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1215
		       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1216
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1217
    readOnly == true ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1218
	m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1219
		       doDeleteClassAndPrivateClassesAll doCompress
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1220
		       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1221
		       doWriteBack doSaveBack doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1222
		       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1223
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1224
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1225
    self hasSelection ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1226
	m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1227
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1228
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1229
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1230
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1231
    "Modified: / 6.9.1995 / 17:14:22 / claus"
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  1232
    "Modified: / 17.11.2001 / 14:16:14 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1233
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1234
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1235
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1236
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1237
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1238
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1239
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1240
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1241
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1242
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1243
focusSequence
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1244
    ^ Array with:changeListView with:codeView
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1245
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1246
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1247
initialize
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1248
    |panel v upperFrame buttonPanel menuPanel mH
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1249
     checkBox oldStyle codeViewBox lbl|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1250
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1251
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1252
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1253
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1254
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1255
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1256
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1257
    encodingIfKnown := nil.
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1258
    autoCompare := (DefaultAutoCompare ? false) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1259
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1260
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1261
    autoloadAsRequired := false asValue.
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1262
    applyInOriginalNameSpace := true asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1263
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1264
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1265
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1266
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1267
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1268
        ].
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1269
    updateChangeSet := true "false" asValue.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1270
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1271
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1272
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1273
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1274
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1275
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1276
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1277
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1278
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1279
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1280
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1281
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1282
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1283
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1284
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1285
        mH := menuPanel preferredExtent y.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1286
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1287
        mH := mH + 1.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1288
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1289
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1290
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1291
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1292
    panel := VariableVerticalPanel origin:(0.0 @ mH)
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1293
                                   corner:(1.0 @ 1.0)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1294
                              borderWidth:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1295
                                       in:self.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1296
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1297
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1298
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1299
        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
  1300
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1301
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1302
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1303
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1304
        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
  1305
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1306
        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
  1307
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1308
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1309
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1310
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1311
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1312
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1313
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1314
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1315
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1316
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1317
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1318
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1319
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1320
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1321
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1322
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1323
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1324
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1325
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1326
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1327
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1328
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1329
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1330
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1331
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1332
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1333
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1334
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1335
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1336
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1337
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1338
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1339
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1340
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1341
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1342
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1343
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1344
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1345
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1346
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1347
    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
  1348
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1349
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1350
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1351
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1352
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1353
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1354
    lbl := Label label:'Current' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1355
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1356
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1357
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1358
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1359
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1360
    lbl := Label label:'Change' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1361
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1362
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1363
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1364
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1365
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1366
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1367
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1368
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1369
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1370
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1371
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1372
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1373
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1374
    v := HVScrollableView for:DiffTextView miniScrollerH:true miniScrollerV:false in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1375
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1376
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1377
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1378
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1379
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1380
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1381
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1382
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1383
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1384
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1385
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1386
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1387
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1388
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1389
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1390
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1391
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1392
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1393
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1394
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1395
    "Modified: / 27.3.1997 / 11:07:07 / stefan"
3297
12b826adb7aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3292
diff changeset
  1396
    "Modified: / 11.10.2001 / 21:20:48 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1397
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1398
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1399
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1400
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1401
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1402
    self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1403
    changeListView action:[:lineNr | self changeSelection:lineNr].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1404
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1405
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1406
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1407
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1408
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1409
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1410
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1411
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1412
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1413
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1414
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1415
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1416
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1417
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1418
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1419
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1420
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1421
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1422
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1423
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1424
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1425
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1426
    autoCompare value ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1427
	tabSpec positions:#(0  0.15  5   8.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1428
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1429
	"/
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1430
	"/ set tabs to hide compare-column
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1431
	"/
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1432
	tabSpec positions:#(-1  0    5   8.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1433
    ]
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1434
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1435
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1436
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1437
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1438
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1439
    (what == #aboutToExit) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1440
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1441
	 smalltalk is about to shut down -
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1442
	 - if change list was modified, ask user and save if requested.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1443
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1444
	anyChanges ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1445
	    self raiseDeiconified.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1446
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1447
	    box := YesNoBox new.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1448
	    box title:('The modified changelist has not been written back to the change file.\\Write change file before exiting ?') withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1449
	    box okText:(resources at:'write') noText:(resources at:'don''t write').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1450
	    box yesAction:[self writeBackChanges]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1451
		 noAction:[].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1452
	    box showAtPointer.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1453
	    box destroy
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1454
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1455
	^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1456
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1457
    super update:what
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1458
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  1459
    "Created: / 15.6.1996 / 15:26:30 / cg"
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  1460
    "Modified: / 7.1.1997 / 23:03:47 / cg"
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  1461
    "Modified: / 24.8.1999 / 09:45:06 / stefan"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1462
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1463
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1464
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1465
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1466
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  1467
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1468
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1469
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1470
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1471
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1472
3503
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1473
    DialogBox aboutClass:self class.
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1474
"/    |rev myClass clsRev msg|
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1475
"/
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1476
"/    rev := ''.
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1477
"/    myClass := self class.
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1478
"/
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1479
"/    (clsRev := myClass revision) notNil ifTrue: [rev := '  (rev: ', clsRev printString, ')'].
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1480
"/
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1481
"/    msg := '\' withCRs , myClass name asBoldText, rev.
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1482
"/
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1483
"/    Dialog
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1484
"/        about:(resources string:msg)
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1485
"/        label:(resources string:'About ChangesBrowser')
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1486
"/        icon:self class defaultIcon
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1487
"/
925fce9419c2 use common about dialog
Claus Gittinger <cg@exept.de>
parents: 3487
diff changeset
  1488
"/    "Modified: / 17.11.2001 / 23:07:33 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1489
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1490
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1491
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1492
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1493
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1494
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1495
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1496
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1497
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1498
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1499
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1500
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1501
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1502
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1503
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1504
    self class autoSelectNext ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1505
	(changeNr <= self numberOfChanges) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1506
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1507
	    self changeSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1508
	    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1509
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1510
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1511
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1512
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1513
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1514
    "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
  1515
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1516
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1517
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1518
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1519
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1520
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1521
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1522
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1523
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1524
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1525
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1526
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1527
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1528
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1529
    changeNr < last ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1530
	self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1531
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1532
	last == 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1533
	    last := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1534
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1535
	changeListView setSelection:last .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1536
	self changeSelection:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1537
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1538
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  1539
    "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
  1540
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1541
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1542
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1543
    "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
  1544
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1545
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1546
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  1547
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1548
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1549
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1550
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1551
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1552
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1553
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1554
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1555
        answer := (self confirmWithCancel:(resources
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1556
                    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
  1557
                    with:cls name allBold)).
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1558
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1559
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1560
    answer == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1561
        Autoload autoloadFailedSignal handle:[:ex |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1562
            AbortOperationRequest raise.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1563
            ^ false
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1564
        ] do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1565
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1566
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1567
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1568
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1569
    answer isNil ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1570
        "cancel the operation"
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1571
        AbortAllOperationRequest raiseRequest.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1572
        ^ false.
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1573
    ].
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1574
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1575
    "cancel operation for this change, (but possibly continue with others)"
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1576
    AbortOperationRequest raiseRequest.
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1577
    ^ false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1578
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1579
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1580
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1581
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1582
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1583
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1584
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1585
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1586
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1587
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1588
isChangeSetBrowser
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1589
    ^ false
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1590
!
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1591
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1592
makeDiffViewInvisible
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1593
    diffViewBox lower
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1594
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1595
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1596
makeDiffViewVisible
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1597
    diffViewBox raise
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1598
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1599
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1600
nameSpaceForApply
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1601
    applyInOriginalNameSpace value ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1602
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1603
    ].
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1604
    ^ Smalltalk.
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1605
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  1606
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1607
newLabel:how
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1608
    |l|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1609
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1610
    (changeFileName ~= 'changes') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1611
	l := self class defaultLabel , ': ', changeFileName
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1612
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1613
	l := self class defaultLabel
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1614
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1615
    l := l , ' ' , how.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1616
    self label:l
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1617
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1618
    "Created: / 8.9.1995 / 19:32:04 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1619
    "Modified: / 8.9.1995 / 19:39:29 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1620
    "Modified: / 6.2.1998 / 13:27:01 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1621
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1622
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1623
oldSourceForParseTree:parseTree
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1624
    |selector thisClass method superClass thisClassSym ownerClass receiver classGlobalNode|
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1625
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1626
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1627
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1628
    or:[ parseTree isMessage not ]]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1629
	^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1630
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1631
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1632
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1633
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1634
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1635
    selector == #'removeSelector:' ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1636
	thisClass := receiver evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1637
	thisClass isBehavior ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1638
	    thisClass isLoaded ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1639
		selector := (parseTree arg1 evaluate).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1640
		(thisClass includesSelector:selector) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1641
		    ^ (thisClass compiledMethodAt:selector) source.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1642
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1643
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1644
		^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1645
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1646
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1647
	    ^ 'Cannot compare this change (class not present)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1648
	].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1649
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1650
    selector == #'comment:' ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1651
	thisClass := receiver evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1652
	thisClass isBehavior ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1653
	    thisClass isLoaded ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1654
		^ thisClass name , ' comment: ' , thisClass comment storeString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1655
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1656
		^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1657
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1658
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1659
	    ^ 'Cannot compare this change (class not present)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1660
	].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1661
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1662
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1663
    selector == #'category:' ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1664
	receiver isMessage ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1665
	    receiver selector == #compiledMethodAt: ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1666
		classGlobalNode := receiver receiver.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1667
		(classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1668
		    classGlobalNode := classGlobalNode receiver
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1669
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1670
		classGlobalNode isUndeclared ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1671
		    ^ 'Class does not exist.'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1672
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1673
		Error handle:[method := nil] do:[method := receiver evaluate].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1674
		method isMethod ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1675
		    method category = parseTree arg1 evaluate ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1676
			^ '(' , method class name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1677
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1678
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1679
		    ^ 'There is no such method'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1680
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1681
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1682
	]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1683
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1684
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1685
    selector == #'instanceVariableNames:' ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1686
	receiver isMessage ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1687
	    receiver selector == #class ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1688
		thisClass := receiver evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1689
		thisClass isBehavior ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1690
		    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1691
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1692
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1693
			^ thisClass definition.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1694
		    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1695
			^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
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
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1698
		    ^ 'Cannot compare this change (class not present)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1699
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1700
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1701
	]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1702
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1703
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1704
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1705
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1706
    ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1707
	superClass := receiver evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1708
	superClass isBehavior ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1709
	    ^ 'Cannot compare this change\\(no such superclass).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1710
	] ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1711
	    superClass isLoaded ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1712
		^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1713
	    ] ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1714
		thisClassSym := (parseTree arguments at:1) evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1715
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1716
		(selector endsWith:':privateIn:') ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1717
		    ownerClass := (parseTree arguments at:5).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1718
		    ownerClass isUndeclared ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1719
			ownerClass := ownerClass evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1720
		    ] ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1721
			ownerClass := nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1722
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1723
		    ownerClass isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1724
			^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1725
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1726
		    thisClass := ownerClass privateClassesAt:thisClassSym.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1727
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1728
		    thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1729
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1730
		thisClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1731
		    thisClass isLoaded ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1732
			^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1733
		    ] ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1734
			^ thisClass definition.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1735
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1736
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1737
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1738
	]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1739
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1740
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1741
    ^ nil.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1742
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1743
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1744
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1745
    "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
  1746
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1747
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1748
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1749
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1750
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1751
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1752
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1753
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1754
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1755
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1756
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1757
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1758
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1759
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1760
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1761
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1762
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1763
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1764
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1765
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1766
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1767
setChangeList
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1768
    "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
  1769
     view"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1770
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1771
    changeListView setList:changeHeaderLines expandTabs:false redraw:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1772
    changeListView invalidate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1773
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1774
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1775
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1776
    "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
  1777
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1778
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1779
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1780
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1781
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1782
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1783
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1784
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1785
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1786
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1787
showNotFound
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1788
    |savedCursor|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1789
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1790
    savedCursor := cursor.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1791
    [
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1792
	self cursor:(Cursor cross).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1793
	self beep.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1794
	Delay waitForMilliseconds:300.
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  1795
    ] ensure:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1796
	self cursor:savedCursor
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1797
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1798
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1799
    "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
  1800
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1801
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1802
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1803
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1804
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1805
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1806
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1807
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1808
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1809
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1810
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1811
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1812
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1813
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1814
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1815
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1816
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  1817
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1818
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1819
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1820
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1821
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1822
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1823
    "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
  1824
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1825
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1826
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1827
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1828
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1829
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1830
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1831
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1832
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1833
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1834
    "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
  1835
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1836
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1837
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1838
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1839
    changeNrSelection := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1840
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1841
	changeNrSelection notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1842
	    self withExecuteCursorDo:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1843
		aBlock value:changeNrSelection
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1844
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1845
	]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1846
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1847
	changeNrSelection size > 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1848
	    self withExecuteCursorDo:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1849
		|changeNumbers|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1850
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1851
		changeNumbers := changeNrSelection copy sort.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1852
		order == #reverse ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1853
		    changeNumbers reverse
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1854
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1855
		changeNumbers do:aBlock
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1856
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1857
	]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1858
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1859
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1860
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1861
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1862
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1863
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1864
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1865
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1866
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1867
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1868
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1869
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1870
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1871
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1872
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1873
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1874
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1875
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  1876
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1877
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1878
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1879
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1880
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1881
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1882
    "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
  1883
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1884
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1885
    ^ changeIsFollowupMethodChange at:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1886
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1887
    "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
  1888
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1889
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1890
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1891
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1892
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1893
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1894
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1895
    (self classNameOfChange:changeNr) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1896
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1897
	 get the chunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1898
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1899
	chunk := changeChunks at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1900
	"mhmh - empty ??"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1901
	chunk notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1902
	    (chunk startsWith:'''---') ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1903
		words := chunk asCollectionOfWords.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1904
		words size > 2 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1905
		    (words at:2) = 'snapshot' ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1906
			^ true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1907
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1908
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1909
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1910
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1911
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1912
    ^ false
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1913
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1914
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1915
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1916
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1917
     (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
  1918
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1919
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1920
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  1921
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1922
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1923
    (name endsWith:' class') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1924
	name := name copyWithoutLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1925
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1926
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1927
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  1928
    "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
  1929
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1930
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1931
extractSelectorOfMethodChange:changeNr
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1932
    "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
  1933
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1934
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1935
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1936
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1937
    source isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1938
	(self classNameOfChange:changeNr) notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1939
	    chunk := changeChunks at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1940
	    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1941
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1942
	    aParseTree := Parser parseExpression:chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1943
	    (aParseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1944
	    or:[aParseTree == #Error
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1945
	    or:[aParseTree isMessage not]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1946
		^ nil        "seems strange ... (could be a comment)"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1947
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1948
	    sel := aParseTree selector.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1949
	    (#(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1950
		#'removeSelector:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1951
	    ) includes:sel) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1952
		sel := aParseTree arguments at:1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1953
		sel isConstant ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1954
		    sel := sel evaluate.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1955
		    sel isSymbol ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1956
			^ sel
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1957
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1958
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1959
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1960
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1961
	^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1962
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1963
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1964
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1965
    parser := Parser
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1966
		parseMethodArgAndVarSpecification:source
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1967
		in:nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1968
		ignoreErrors:true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1969
		ignoreWarnings:true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1970
		parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1971
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1972
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1973
	sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1974
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1975
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1976
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1977
    "Created: 24.11.1995 / 14:30:46 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1978
    "Modified: 5.9.1996 / 17:12:50 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1979
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1980
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1981
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1982
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  1983
     (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
  1984
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1985
    |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
  1986
     words changeStream fullParseTree ownerTree ownerName oldDollarSetting|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1987
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1988
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1989
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1990
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1991
    "
5145
5e2add158e16 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5144
diff changeset
  1992
    name := changeClassNames at:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  1993
    name notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1994
	name == #nil ifTrue:[^ nil].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1995
	^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  1996
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1997
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1998
    prevMethodDefNr := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1999
    [changeIsFollowupMethodChange at:prevMethodDefNr] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2000
	prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2001
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2002
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2003
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2004
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2005
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2006
    chunk := changeChunks at:prevMethodDefNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2007
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2008
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2009
    (chunk startsWith:'''---') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2010
	words := chunk asCollectionOfWords.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2011
	words size > 2 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2012
	    (words at:2) = 'checkin' ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2013
		name := words at:3.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2014
		^ name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2015
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2016
	].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2017
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2018
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2019
    "/ fix it - otherwise, it cannot be parsed
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2020
    (chunk endsWith:'primitiveDefinitions:') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2021
	chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2022
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2023
    (chunk endsWith:'primitiveFunctions:') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2024
	chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2025
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2026
    (chunk endsWith:'primitiveVariables:') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2027
	chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2028
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2029
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2030
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2031
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2032
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2033
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2034
    [
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2035
	Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2036
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2037
"/        do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2038
	    aParseTree := Parser parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2039
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2040
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2041
	aParseTree == #Error ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2042
	    (chunk includesString:'comment') ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2043
		"/ could be a comment ...
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2044
		aParseTree := Parser parseExpression:chunk , ''''.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2045
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2046
	].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  2047
    ] ensure:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2048
	Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2049
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2050
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2051
	^ 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
  2052
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2053
    aParseTree isMessage ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2054
	^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2055
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2056
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2057
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2058
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2059
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2060
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2061
    recTree := aParseTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2062
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2063
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2064
     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
  2065
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2066
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2067
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2068
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2069
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2070
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2071
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2072
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2073
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2074
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2075
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2076
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2077
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2078
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2079
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2080
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2081
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2082
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2083
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2084
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2085
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2086
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2087
    ) includes:sel) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2088
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2089
	 yes, the className is the receiver
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2090
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2091
	(recTree notNil and:[recTree ~~ #Error]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2092
	    isMeta := false.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2093
	    recTree isUnaryMessage ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2094
		(recTree selector ~~ #class) ifTrue:[^ nil].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2095
		"id class methodsFor:..."
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2096
		recTree := recTree receiver.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2097
		isMeta := true.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2098
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2099
	    recTree isPrimary ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2100
		name := recTree name.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2101
		isMeta ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2102
		    name := name , ' class'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2103
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2104
		^ name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2105
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2106
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2107
	"more strange things"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2108
	^ nil
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2109
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2110
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2111
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2112
     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
  2113
    "
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  2114
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2115
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  2116
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2117
	"/ must parse the full changes text, to get
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2118
	"/ privacy information.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2119
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2120
	changeStream := self streamForChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2121
	changeStream notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2122
	    chunk := changeStream nextChunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2123
	    changeStream close.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2124
	    fullParseTree := Parser parseExpression:chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2125
	    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2126
		fullParseTree := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2127
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2128
		fullParseTree isMessage ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2129
		    fullParseTree := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2130
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2131
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2132
	    "/ actually, the nil case cannot happen
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2133
	    fullParseTree notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2134
		aParseTree := fullParseTree.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2135
		sel := aParseTree selector.
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
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2139
	arg1Tree := aParseTree arg1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2140
	(arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2141
	    name := arg1Tree value asString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2142
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2143
	    "/ is it a private-class ?
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2144
	    ('*privateIn:' match:sel) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2145
		ownerTree := aParseTree args last.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2146
		ownerName := ownerTree name asString.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2147
		name := ownerName , '::' , name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2148
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2149
	    ^ name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2150
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2151
	"very strange"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2152
	^ nil
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2155
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2156
     is it a class remove ?
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
    (sel == #removeClass:) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2159
	(recTree notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2160
	and:[recTree ~~ #Error
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2161
	and:[recTree isPrimary
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2162
	and:[recTree name = 'Smalltalk']]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2163
	    arg1Tree := aParseTree arg1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2164
	    (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2165
		name := arg1Tree name.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2166
		^ name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2167
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2168
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2169
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2170
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2171
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2172
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2173
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2174
    ((sel == #category:)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2175
    or:[sel == #privacy:]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2176
	(recTree notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2177
	and:[recTree ~~ #Error
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2178
	and:[recTree isMessage
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2179
	and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2180
	    isMeta := false.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2181
	    recTree := recTree receiver.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2182
	    recTree isUnaryMessage ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2183
		(recTree selector ~~ #class) ifTrue:[^ nil].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2184
		"id class "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2185
		recTree := recTree receiver
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2186
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2187
	    recTree isPrimary ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2188
		isMeta ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2189
		    name := name , ' class'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2190
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2191
		name := recTree name.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2192
		^ name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2193
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2194
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2195
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2196
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2197
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2198
    "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
  2199
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2200
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2201
numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2202
    ^ changePositions size
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2203
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2204
    "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
  2205
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2206
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2207
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2208
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2209
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2210
     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
  2211
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  2212
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2213
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2214
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2215
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2216
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2217
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2218
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2219
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2220
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2221
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2222
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2223
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2224
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2225
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2226
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2227
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2228
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2229
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2230
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2231
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2232
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2233
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2234
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2235
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2236
"/        ^ name copyWithoutLast:6
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2237
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2238
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2239
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2240
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2241
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2242
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2243
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2244
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2245
     - 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
  2246
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2247
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2248
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2249
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2250
    name := changeClassNames at:changeNr.
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2251
    name isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2252
	name := self fullClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2253
	name isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2254
	    changeClassNames at:changeNr put:#nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2255
	].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2256
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2257
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2258
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2259
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2260
    "Modified: / 6.12.1995 / 17:06:31 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2261
    "Created: / 5.11.2001 / 18:09:46 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2262
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2263
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2264
selectorOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2265
    "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
  2266
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2267
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2268
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2269
    changeSelectors size >= changeNr ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2270
	sel := changeSelectors at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2271
	sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2272
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2273
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2274
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2275
    sel notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2276
	changeSelectors isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2277
	    changeSelectors := OrderedCollection new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2278
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2279
	changeSelectors grow:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2280
	changeSelectors at:changeNr put:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2281
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2282
    ^ sel
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
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2286
    "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
  2287
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2288
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2289
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2290
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2291
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2292
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2293
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2294
	sawExcla := aStream peekFor:(aStream class chunkSeparator).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2295
	chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2296
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2297
	chunk := (changeChunks at:changeNr).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2298
	sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2299
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2300
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2301
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2302
	parseTree := Parser parseExpression:chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2303
	(parseTree notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2304
	and:[parseTree ~~ #Error
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2305
	and:[parseTree isMessage]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2306
	    sel := parseTree selector.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2307
	    (#(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2308
	       #methodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2309
	       #privateMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2310
	       #publicMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2311
	       #ignoredMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2312
	       #protectedMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2313
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2314
	       #methodsFor:stamp:             "/ Squeak support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2315
	       #commentStamp:prior:           "/ Squeak support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2316
	       #methodsFor                    "/ Dolphin support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2317
	       #methods                       "/ STV support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2318
	      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2319
	    includes:sel) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2320
		sourceChunk := aStream nextChunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2321
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2322
	].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2323
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2324
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2325
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2326
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2327
    "Created: / 5.9.1996 / 17:11:32 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2328
    "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
  2329
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2330
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2331
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2332
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2333
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2334
    |aStream encoding decoder|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2335
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2336
    (changeNr between:1 and:changePositions size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2337
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2338
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2339
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2340
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2341
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2342
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2343
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2344
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2345
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2346
        decoder := CharacterEncoder encoderFor:encodingIfKnown.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2347
        aStream := EncodedStream stream:aStream encoder:decoder.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2348
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2349
4599
9a95e5ae08ad code rewritten to be independent of stream zero-base
Claus Gittinger <cg@exept.de>
parents: 4497
diff changeset
  2350
    aStream position1Based:(changePositions at:changeNr).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2351
    ^ aStream
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2352
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2353
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2354
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2355
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2356
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2357
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2358
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2359
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2360
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2361
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2362
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2363
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2364
    "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
  2365
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2366
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2367
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2368
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2369
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2370
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2371
    (info := f info) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2372
	self newLabel:'(unaccessable)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2373
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2374
	(info modificationTime) > changeFileTimestamp ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2375
	    self newLabel:'(outdated)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2376
	    autoUpdate value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2377
		self doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2378
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2379
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2380
	    self newLabel:''
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2381
	]
2263
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
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2384
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2385
    "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
  2386
    "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
  2387
    "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
  2388
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2389
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2390
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2391
    "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
  2392
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2393
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2394
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2395
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2396
!
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
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2399
    "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
  2400
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2401
     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
  2402
     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
  2403
        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
  2404
                '+' -> 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
  2405
                '-' -> 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
  2406
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2407
                '=' -> 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
  2408
                '~' -> 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
  2409
        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
  2410
        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
  2411
                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
  2412
                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
  2413
                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
  2414
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2415
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2416
     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
  2417
     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
  2418
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2419
    |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
  2420
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2421
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  2422
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2423
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2424
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2425
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2426
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2427
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2428
    (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
  2429
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2430
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2431
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2432
    f := changeFileName asFilename.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2433
    inStream :=  f readStream.
5715
3682c9e4fb0a skip and hide encoding chunk
ca
parents: 5703
diff changeset
  2434
6173
4ba4589e4952 guessEncoding now implemented in CharacterEncoder
Claus Gittinger <cg@exept.de>
parents: 6162
diff changeset
  2435
    encoding := CharacterEncoder guessEncodingOfStream:inStream.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2436
    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
  2437
        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
  2438
        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
  2439
        inStream skipEncodingChunk.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2440
    ].
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2441
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2442
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  2443
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  2444
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2445
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2446
    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
  2447
        "
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
  2448
         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
  2449
         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
  2450
        "
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
  2451
        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
  2452
            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
  2453
            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
  2454
            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
  2455
            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
  2456
        ].
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
  2457
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
  2458
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2459
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2460
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2461
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  2462
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2463
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2464
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2465
            reader autoCompare:autoCompare.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2466
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2467
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2468
            reader noColoring:(NoColoring == true).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2469
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2470
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2471
            editingClassSource := reader thisIsAClassSource.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2472
            changeChunks := reader changeChunks.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2473
            changeClassNames := reader changeClassNames.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2474
            changeHeaderLines := reader changeHeaderLines.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2475
            changePositions := reader changePositions.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2476
            changeTimeStamps := reader changeTimeStamps.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2477
            changeIsFollowupMethodChange := reader changeIsFollowupMethodChange.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2478
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
  2479
            anyChanges := 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
  2480
        ] 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
  2481
            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
  2482
            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
  2483
                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
  2484
                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
  2485
            ].
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
  2486
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2487
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2488
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2489
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2490
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2491
    "Modified: / 27.8.1995 / 23:06:55 / claus"
3378
a13d1dfdf7e5 use symbols as key when accesing smalltalk
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  2492
    "Modified: / 9.11.2001 / 02:24:46 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2493
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2494
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2495
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2496
    "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
  2497
     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
  2498
     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
  2499
     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
  2500
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2501
     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
  2502
     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
  2503
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
  2504
    |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
  2505
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2506
    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
  2507
        (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
  2508
        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
  2509
            ^ 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
  2510
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2511
    ].
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
    tempfile := Filename newTemporaryIn:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2514
    tempfile exists ifTrue:[tempfile remove].
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2515
    [
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
  2516
        outStream := tempfile writeStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2517
    ] on:FileStream openErrorSignal do:[:ex|
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
  2518
        self warn:'Cannot create temp file in current directory.'.
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
  2519
        ^ false
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2520
    ].
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
  2521
    [
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
  2522
        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
  2523
    ] 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
  2524
        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
  2525
        ^ 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
  2526
    ].
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
  2527
5715
3682c9e4fb0a skip and hide encoding chunk
ca
parents: 5703
diff changeset
  2528
    outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
5733
68674189e1ae *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5715
diff changeset
  2529
    outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2530
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
  2531
    encoding := CharacterEncoder guessEncodingOfStream:inStream.
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
  2532
    encoding notNil 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
  2533
        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
  2534
        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
  2535
    ].
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
  2536
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2537
    self withCursor:(Cursor write) do:[
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
  2538
        |excla sawExcla done first chunk
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
  2539
         nChanges "{Class:SmallInteger}" |
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
  2540
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
  2541
        Stream writeErrorSignal handle:[: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
  2542
            self warn:('Could not update the changes file.\\' , ex description) 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
  2543
            tempfile exists ifTrue:[tempfile remove].
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
  2544
            ^ 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
  2545
        ] do:[
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
  2546
            excla := inStream class chunkSeparator.
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
  2547
            nChanges := self numberOfChanges.
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
  2548
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
  2549
            1 to:nChanges do:[:index |
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
  2550
                inStream position1Based:(changePositions at:index).
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
  2551
                sawExcla := inStream peekFor:excla.
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
  2552
                chunk := inStream nextChunk.
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
  2553
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
  2554
                (chunk notNil
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
  2555
                and:[(chunk startsWith:'''---- snap') not]) 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
  2556
                    (stamp := changeTimeStamps at:index) notNil 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
  2557
                        outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
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
  2558
                        outStream nextPut:excla; cr.
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
  2559
                    ].
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
  2560
                ].
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
  2561
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
  2562
                sawExcla 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
  2563
                    outStream nextPut:excla.
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
  2564
                    outStream nextChunkPut:chunk.
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
  2565
                    outStream cr; cr.
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
  2566
                    "
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
  2567
                     a method-definition chunk - output followups
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
  2568
                    "
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
  2569
                    done := 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
  2570
                    first := true.
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
  2571
                    [done] whileFalse:[
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
  2572
                        chunk := inStream nextChunk.
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
  2573
                        chunk isNil 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
  2574
                            outStream cr; cr.
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
  2575
                            done := true
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
  2576
                        ] 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
  2577
                            chunk isEmpty 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
  2578
                                outStream space; nextChunkPut:chunk; cr; cr.
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
  2579
                                done := true.
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
  2580
                            ] 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
  2581
                                first 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
  2582
                                    outStream cr; cr.
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
  2583
                                ].
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
  2584
                                outStream nextChunkPut:chunk.
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
  2585
                            ].
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
  2586
                        ].
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
  2587
                        first := 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
  2588
                    ].
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
  2589
                ] 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
  2590
                    outStream nextChunkPut:chunk.
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
  2591
                    outStream cr
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
  2592
                ]
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
  2593
            ].
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
  2594
            outStream 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
  2595
            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
  2596
        ].
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
  2597
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
  2598
        f := changeFileName asFilename.
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
  2599
        f renameTo:(f withSuffix:'bak').
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
  2600
        tempfile renameOrCopyTo:changeFileName.
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
  2601
        anyChanges := false
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2602
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2603
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2604
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2605
    "Modified: / 2.12.1996 / 22:29:15 / stefan"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2606
    "Modified: / 21.4.1998 / 17:50:11 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2607
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2608
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2609
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2610
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2611
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2612
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2613
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2614
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2615
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2616
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2617
    changeInStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2618
	self warn:'Cannot read change'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2619
	^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2620
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2621
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2622
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2623
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2624
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2625
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2626
	sawExcla := true.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2627
	chunk := changeChunks at:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2628
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2629
	sawExcla := changeInStream peekFor:separator.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2630
	chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2631
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2632
    chunk withoutSeparators isEmpty ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2633
	self error:'Empty chunk - should not happen'.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2634
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2635
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2636
    fileName := aFileNameOrFileNameString asFilename.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2637
    fileName exists ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2638
	encoding := CharacterEncoder guessEncodingOfFile:fileName.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2639
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2640
	encoding := #utf8.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2641
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2642
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2643
    [
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2644
	outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2645
    ] on:FileStream openErrorSignal do:[:ex|
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2646
	self warn:'Cannot update file: ''%1''' with:fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2647
	^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2648
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2649
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2650
    encoding notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2651
	outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderFor:encoding).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2652
	outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2653
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2654
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2655
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2656
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2657
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2658
	outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2659
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2660
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2661
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2662
	chunk2 := changeInStream nextChunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2663
	chunk2 withoutSeparators isEmpty ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2664
	    self error:'Empty chunk - should not happen'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2665
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2666
	outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2667
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2668
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2669
	outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2670
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2671
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2672
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2673
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2674
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2675
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2676
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2677
    "Modified: / 6.2.1998 / 13:03:54 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2678
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2679
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2680
applyChange:changeNr
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2681
    "fileIn a change"
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2682
3091
12dd79e44cea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3090
diff changeset
  2683
    |aStream applyAction nameSpace className changeClass ownerName ownerClass
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2684
     sig reader doItChunk methodsForChunk pkg
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2685
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2686
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2687
    aStream := self streamForChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2688
    aStream isNil ifTrue:[^ self].
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2689
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2690
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  2691
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2692
        className := className asSymbol.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2693
        changeClass := Smalltalk at:className ifAbsent:[].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2694
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2695
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2696
        ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2697
        changeClass notNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2698
            changeClass autoload
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2699
        ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2700
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2701
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2702
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2703
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2704
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2705
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2706
        [
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2707
            (skipSignal notNil) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2708
                sig := skipSignal
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2709
            ] ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2710
                sig := AbortOperationRequest
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2711
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2712
            sig handle:[:ex |
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2713
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2714
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2715
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2716
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2717
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2718
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2719
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2720
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2721
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2722
                    do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2723
                        "/ a followup methodsFor: chunk ...
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2724
                        (self changeIsFollowupMethodChange:changeNr) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2725
                            methodsForChunk := (changeChunks at:changeNr).
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2726
                        ] ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2727
                            doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2728
                            doItChunk notEmpty ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2729
                                Compiler evaluate:doItChunk notifying:self.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2730
                            ] ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2731
                                methodsForChunk := aStream nextChunk.   "/ the real one
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2732
                            ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2733
                        ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2734
                        methodsForChunk notNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2735
                            changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2736
                                orgClassName := className.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2737
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2738
                                (className includes:$:) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2739
                                    ownerName := className copyTo:(className lastIndexOf:$:) - 1.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2740
                                    (ownerName endsWith:$:) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2741
                                        ownerName := ownerName copyWithoutLast:1.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2742
                                    ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2743
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2744
                                    ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2745
                                    ownerClass notNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2746
                                        ownerClass autoload
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2747
                                    ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2748
                                ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2749
                                (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2750
                                    changeClass := nameSpace at:className ifAbsent:[].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2751
                                ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2752
                                changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2753
                                    changeClass := Smalltalk at:className ifAbsent:[].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2754
                                ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2755
                                [changeClass isNil] whileTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2756
                                    (NameSpace allNamespaces
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2757
                                        detect:[:ns | (nsClass := (ns at:className)) notNil] ifNone:nil)
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2758
                                    notNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2759
                                        shortName := nsClass name.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2760
                                    ] ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2761
                                        shortName := className copyFrom:(className lastIndexOf:$:) + 1.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2762
                                        shortName = className ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2763
                                             shortName := ''
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2764
                                        ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2765
                                    ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2766
                                    className := Dialog
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2767
                                                    request:'No class ''' , className , ''' for change. Add to which class ?'
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2768
                                                    initialAnswer:shortName.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2769
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2770
                                    className size == 0 ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2771
                                        ^ self
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2772
                                    ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2773
                                    alternativeClass := Smalltalk classNamed:className.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2774
                                    alternativeClass notNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2775
                                        changeClass := alternativeClass
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2776
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2777
                                ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2778
                                methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2779
                                methodsForChunk := changeClass name , methodsForChunk.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2780
                            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2781
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2782
                            reader := Compiler evaluate:methodsForChunk notifying:self.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2783
                            reader fileInFrom:aStream notifying:self passChunk:false single:true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2784
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2785
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2786
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2787
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2788
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2789
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2790
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2791
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2792
    "/ 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
  2793
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2794
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2795
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2796
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2797
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2798
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  2799
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2800
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2801
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2802
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  2803
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  2804
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  2805
    "Modified: / 16.11.2001 / 17:38:06 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2806
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2807
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2808
compareChange:changeNr
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2809
    "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
  2810
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2811
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2812
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2813
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2814
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2815
    "compare a change with current version.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2816
     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
  2817
     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
  2818
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2819
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
742
2ef5e22d8983 code cleanup (unused vars eliminated)
Claus Gittinger <cg@exept.de>
parents: 724
diff changeset
  2820
     parser sel oldMethod outcome showDiff d t1 t2 selector isLoaded
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2821
     method beep superClass thisClassSym varsHere varsInChange addedVars removedVars
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2822
     isSame ownerClass superClassHere superClassInChange|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2823
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2824
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2825
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2826
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  2827
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  2828
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2829
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2830
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2831
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2832
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2833
        chunk := (changeChunks at:changeNr).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2834
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2835
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2836
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2837
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  2838
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  2839
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2840
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2841
        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
  2842
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2843
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2844
        do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2845
            parseTree := Parser parseExpression:chunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2846
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2847
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2848
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2849
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2850
            selector == #'removeSelector:' ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2851
                thisClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2852
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2853
                    (self checkClassIsLoaded:thisClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2854
                        selector := (parseTree arg1 evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2855
                        (thisClass includesSelector:selector) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2856
                            outcome := 'Change removes the #' , selector , ' method from ' , thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2857
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2858
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2859
                            outcome := 'Change has no effect\\(there is no method for #' , selector , ' in ' , thisClass name , ')'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2860
                            isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2861
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2862
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2863
                        beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2864
                        outcome := 'Cannot compare this change (compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2865
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2866
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2867
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2868
                    outcome := 'Cannot compare this change (class not present)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2869
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2870
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2871
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2872
            selector == #'category:' ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2873
                parseTree receiver isMessage ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2874
                    parseTree receiver selector == #compiledMethodAt: ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2875
                        |receiver|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2876
                        receiver := parseTree receiver.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2877
                        (receiver receiver evaluate isBehavior
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2878
                         and:[(method := receiver evaluate) isMethod]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2879
                            method category = parseTree arg1 evaluate ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2880
                                outcome := 'Change has no effect\\(same category)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2881
                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2882
                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2883
                                outcome := 'Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2884
                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2885
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2886
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2887
                            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2888
                            outcome := 'There is no such method'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2889
                            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2890
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2891
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2892
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2893
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2894
            selector == #'comment:' ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2895
                thisClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2896
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2897
                    (self checkClassIsLoaded:thisClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2898
                        (thisClass comment = parseTree arg1 evaluate) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2899
                            outcome := 'Change has no effect\\(same comment)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2900
                            isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2901
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2902
                            outcome := 'Comment is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2903
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2904
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2905
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2906
                        beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2907
                        outcome := 'Cannot compare this change (compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2908
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2909
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2910
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2911
                    outcome := 'Cannot compare this change (class not present)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2912
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2913
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2914
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2915
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2916
            selector == #'instanceVariableNames:' ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2917
                parseTree receiver isMessage ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2918
                    parseTree receiver selector == #class ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2919
                        thisClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2920
                        varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2921
                        varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2922
                        varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2923
                            outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2924
                            isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2925
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2926
                            outcome := 'Class-instanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2927
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2928
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2929
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2930
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2931
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2932
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2933
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2934
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2935
            ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2936
                superClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2937
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2938
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2939
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2940
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2941
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2942
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2943
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2944
                        (selector endsWith:':privateIn:') ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2945
                            ownerClass := (parseTree arguments at:5) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2946
                            ownerClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2947
                                thisClass := ownerClass privateClassesAt:thisClassSym.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2948
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2949
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2950
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2951
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2952
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2953
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2954
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2955
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2956
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2957
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2958
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2959
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2960
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2961
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2962
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2963
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2964
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2965
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2966
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2967
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2968
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2969
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2970
                                            ((thisClass sharedPools size == 0) and:[(parseTree arguments at:4) evaluate = '']) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2971
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2972
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2973
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2974
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2975
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2976
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2977
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2978
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2979
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2980
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2981
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2982
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2983
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2984
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  2985
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2986
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2987
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2988
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2989
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2990
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2991
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2992
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2993
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2994
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2995
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2996
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2997
                                        addedVars := varsInChange select:[:eachVar | (varsHere includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2998
                                        removedVars := varsHere select:[:eachVar | (varsInChange includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  2999
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3000
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3001
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3002
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3003
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3004
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3005
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3006
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3007
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3008
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3009
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3010
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3011
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3012
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3013
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3014
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3015
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3016
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3017
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3018
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3019
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3020
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3021
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3022
        do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3023
            parseTree := Parser parseExpression:chunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3024
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3025
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3026
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3027
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3028
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3029
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3030
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3031
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3032
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3033
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3034
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3035
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3036
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3037
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3038
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3039
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3040
            includes:parseTree selector) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3041
                thisClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3042
                (thisClass notNil and:[thisClass isKindOf:UndefinedVariable]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3043
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3044
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3045
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3046
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3047
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3048
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3049
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3050
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3051
                        owner := Smalltalk classNamed:ownerName.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3052
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3053
                            self checkClassIsLoaded:owner.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3054
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3055
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3056
                    thisClass := (parseTree receiver evaluate).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3057
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3058
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3059
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3060
                    (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3061
                        outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3062
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3063
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3064
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3065
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3066
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3067
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3068
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3069
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3070
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3071
                            cat := parseTree arg1 evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3072
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3073
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3074
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3075
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3076
                    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3077
                    do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3078
                        parser := Parser parseMethod:newSource in:thisClass.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3079
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3080
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3081
                        sel := parser selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3082
                        oldMethod := thisClass compiledMethodAt:sel.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3083
                        oldMethod notNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3084
                            (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  3085
"/                                Transcript showCR:'category changed.'.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3086
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3087
                            oldSource := oldMethod source.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3088
                            (oldSource = newSource) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3089
                                outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3090
                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3091
                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3092
                                oldSource isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3093
                                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3094
                                    outcome := 'No source for compare.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3095
                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3096
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3097
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3098
                                    "/ compare for tabulator <-> space changes
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3099
                                    "/ before showing diff ...
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3100
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3101
                                    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3102
                                    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3103
                                    t1 = t2 ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3104
                                        outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3105
                                        isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3106
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3107
                                        outcome := 'Source changed.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3108
                                        showDiff := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3109
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3110
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3111
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3112
                                        "/ check if only historyLine diffs
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3113
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3114
                                        (HistoryManager notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3115
                                        and:[HistoryManager isActive]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3116
                                            (HistoryManager withoutHistoryLines:newSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3117
                                            =
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3118
                                            (HistoryManager withoutHistoryLines:oldSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3119
                                            ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3120
                                                outcome := 'Same source (history only)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3121
                                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3122
                                                showDiff := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3123
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3124
                                        ].
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
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3127
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3128
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3129
                            isLoaded ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3130
                                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3131
                                outcome := 'Method does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3132
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3133
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3134
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3135
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3136
                        outcome := 'Change is unparsable (parse error).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3137
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3138
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3139
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3140
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3141
                            d := DiffTextView
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3142
                                    openOn:oldSource label:(resources string:'current version (in image)')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3143
                                    and:newSource label:(resources string:'change version').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3144
                            d label:'method differences'.
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
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3148
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3149
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3150
                    isSame := nil.
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
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3153
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3154
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3155
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3156
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3157
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3158
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3159
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3160
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3161
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3162
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3163
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3164
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3165
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3166
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3167
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3168
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3169
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3170
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3171
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3172
            ]
553
b67caadfe334 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 548
diff changeset
  3173
"/        Transcript showCR:outcome.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3174
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3175
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3176
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3177
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  3178
    "Created: / 24.11.1995 / 14:30:46 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  3179
    "Modified: / 13.2.2000 / 15:04:39 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3180
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3181
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3182
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3183
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3184
     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
  3185
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3186
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3187
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3188
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3189
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3190
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3191
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3192
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3193
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3194
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3195
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3196
     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
  3197
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3198
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3199
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3200
    |lbl aStream searchIndex anyMore deleteSet index
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3201
     str snapshotProto snapshotPrefix snapshotNameIndex fileName|
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3202
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  3203
    aStream := changeFileName asFilename readStreamOrNil.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3204
    aStream isNil ifTrue:[^ self].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3205
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  3206
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3207
    aClassNameOrNil isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3208
	selectorToCompressOrNil notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3209
	    lbl := lbl , ' for ' , selectorToCompressOrNil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3210
	]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3211
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3212
	selectorToCompressOrNil isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3213
	    lbl := lbl , ' for ' , aClassNameOrNil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3214
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3215
	    lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3216
	]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3217
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3218
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3219
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3220
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3221
    CompressSnapshotInfo == true ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3222
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3223
	 get a prototype snapshot record (to be independent of
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3224
	 the actual format ..
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3225
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3226
	str := WriteStream on:String new.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3227
	Class addChangeRecordForSnapshot:'foo' to:str.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3228
	snapshotProto := str contents.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3229
	snapshotPrefix := snapshotProto copyTo:10.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3230
	snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3231
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3232
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3233
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3234
	|numChanges classes selectors types excla sawExcla
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3235
	 changeNr chunk aParseTree parseTreeChunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3236
	 thisClass thisSelector codeChunk codeParser
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3237
	 compressThis|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3238
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3239
	numChanges := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3240
	classes := Array new:numChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3241
	selectors := Array new:numChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3242
	types := Array new:numChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3243
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3244
	"starting at the end, get the change class and change selector;
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3245
	 collect all in classes / selectors"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3246
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3247
	changeNr := numChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3248
	excla := aStream class chunkSeparator.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3249
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3250
	[changeNr >= 1] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3251
	    aStream position1Based:(changePositions at:changeNr).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3252
	    sawExcla := aStream peekFor:excla.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3253
	    chunk := aStream nextChunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3254
	    sawExcla ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3255
		"optimize a bit if multiple methods for same category arrive"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3256
		(chunk = parseTreeChunk) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3257
		    aParseTree := Parser parseExpression:chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3258
		    parseTreeChunk := chunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3259
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3260
		(aParseTree notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3261
		and:[(aParseTree ~~ #Error)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3262
		and:[aParseTree isMessage]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3263
		    (#(
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3264
		       #methodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3265
		       #privateMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3266
		       #publicMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3267
		       #ignoredMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3268
		       #protectedMethodsFor:
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3269
		       #methodsFor:stamp:             "/ Squeak support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3270
		       #methodsFor                    "/ Dolphin support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3271
		       #methods                       "/ STV support
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3272
		      )
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3273
		    includes:aParseTree selector) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3274
			thisClass := (aParseTree receiver evaluate).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3275
			codeChunk := aStream nextChunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3276
			codeParser := Parser
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3277
					  parseMethodSpecification:codeChunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3278
					  in:thisClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3279
					  ignoreErrors:true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3280
					  ignoreWarnings:true.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3281
			(codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3282
			    selectors at:changeNr put:(codeParser selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3283
			    classes at:changeNr put:thisClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3284
			    types at:changeNr put:#methodsFor
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3285
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3286
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3287
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3288
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3289
		aParseTree := Parser parseExpression:chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3290
		parseTreeChunk := chunk.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3291
		(aParseTree notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3292
		and:[(aParseTree ~~ #Error)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3293
		and:[aParseTree isMessage]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3294
		    (aParseTree selector == #removeSelector:) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3295
			selectors at:changeNr put:(aParseTree arg1 value ).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3296
			classes at:changeNr put:(aParseTree receiver evaluate).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3297
			types at:changeNr put:#removeSelector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3298
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3299
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3300
		    CompressSnapshotInfo == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3301
			(chunk startsWith:snapshotPrefix) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3302
			    str := chunk readStream position1Based:snapshotNameIndex.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3303
			    fileName := str upTo:(Character space).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3304
			    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3305
			     kludge to allow use of match-check below
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3306
			    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3307
			    selectors at:changeNr put:snapshotPrefix.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3308
			    classes at:changeNr put:fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3309
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3310
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3311
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3312
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3313
	    changeNr := changeNr - 1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3314
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3315
	aStream close.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3316
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3317
	"for all changes, look for another class/selector occurrence later
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3318
	 in the list and, if there is one, add change number to the delete set"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3319
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3320
	deleteSet := OrderedCollection new.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3321
	changeNr := 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3322
	[changeNr < self numberOfChanges] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3323
	    thisClass := classes at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3324
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3325
	    compressThis := false.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3326
	    aClassNameOrNil isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3327
		compressThis := true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3328
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3329
		"/ skipping unloaded/unknown classes
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3330
		thisClass isBehavior ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3331
		    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3332
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3333
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3334
	    compressThis ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3335
		thisSelector := selectors at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3336
		compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3337
		compressThis ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3338
		    searchIndex := changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3339
		    anyMore := true.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3340
		    [anyMore] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3341
			searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3342
			(searchIndex ~~ 0) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3343
			    ((selectors at:searchIndex) == thisSelector) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3344
				thisClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3345
				    deleteSet add:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3346
				    anyMore := false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3347
				]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3348
			    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3349
			] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3350
			    anyMore := false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3351
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3352
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3353
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3354
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3355
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3356
	    changeNr := changeNr + 1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3357
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3358
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3359
	"finally delete what has been found"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3360
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3361
	(deleteSet size > 0) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3362
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3363
	    index := deleteSet size.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3364
	    [index > 0] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3365
		self silentDeleteChange:(deleteSet at:index).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3366
		index := index - 1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3367
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3368
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3369
	    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3370
	     scroll back a bit, if we are left way behind the list
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3371
	    "
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3372
	    changeListView firstLineShown > self numberOfChanges ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3373
		changeListView makeLineVisible:self numberOfChanges
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3374
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3375
	    self clearCodeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3376
	]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3377
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3378
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3379
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3380
    "Modified: / 5.11.2001 / 16:34:53 / cg"
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3381
    "Created: / 19.11.2001 / 22:03:42 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3382
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3383
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3384
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3385
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3386
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3387
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3388
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3389
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3390
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3391
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3392
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3393
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3394
    stop to:start by:-1 do:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3395
	self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3396
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  3397
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3398
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3399
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3400
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3401
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3402
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3403
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  3404
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3405
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3406
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3407
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3408
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3409
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3410
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3411
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3412
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3413
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3414
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3415
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3416
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3417
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3418
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3419
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3420
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3421
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3422
    anyChanges := true.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3423
    changeChunks removeIndex:changeNr.
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3424
    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3425
    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3426
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3427
    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3428
    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3429
    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3430
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3431
    "Modified: 18.11.1995 / 17:08:44 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3432
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3433
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3434
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
  3435
    "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
  3436
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3437
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3438
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3439
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3440
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3441
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3442
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3443
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3444
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3445
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3446
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3447
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3448
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3449
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3450
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3451
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3452
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3453
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3454
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3455
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3456
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3457
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3458
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3459
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3460
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3461
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3462
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3463
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3464
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3465
	    (self selectorOfMethodChange:index) == selector ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3466
		self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3467
		numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3468
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3469
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3470
	index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3471
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3472
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3473
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3474
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3475
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3476
    "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
  3477
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3478
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3479
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3480
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3481
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3482
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3483
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3484
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3485
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3486
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3487
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3488
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3489
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3490
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3491
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3492
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3493
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3494
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3495
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3496
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3497
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3498
    anyChanges := true.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3499
    changeChunks removeIndex:changeNr.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3500
    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3501
    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3502
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3503
    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3504
    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3505
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3506
    "Created: / 7.3.1997 / 16:28:32 / cg"
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3507
    "Modified: / 7.2.1998 / 19:59:11 / cg"
1496
978b3c3565c9 #silentDeleteInternalChange: copy-paste error
Stefan Vogel <sv@exept.de>
parents: 1473
diff changeset
  3508
    "Modified: / 26.2.1998 / 18:20:48 / stefan"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3509
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3510
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3511
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3512
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3513
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3514
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3515
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3516
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3517
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3518
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3519
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3520
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3521
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3522
     parser sel showDiff selector oldMethod|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3523
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3524
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3525
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3526
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3527
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3528
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3529
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3530
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3531
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3532
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3533
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3534
    ] ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3535
        chunk := (changeChunks at:changeNr).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3536
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3537
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3538
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3539
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3540
    do:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3541
        parseTree := Parser parseExpression:chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3542
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3543
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3544
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3545
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3546
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3547
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3548
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3549
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3550
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3551
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3552
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3553
            newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3554
            oldSource := self oldSourceForParseTree:parseTree.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3555
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3556
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3557
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3558
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3559
                newSource := aStream nextChunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3560
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3561
                thisClass := (parseTree receiver evaluate).
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3562
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3563
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3564
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3565
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3566
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3567
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3568
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3569
                        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
  3570
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3571
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3572
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  3573
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3574
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3575
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3576
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3577
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3578
                        do:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3579
                            Error handle:[:ex |
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3580
                            ] do:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3581
                                parser := Parser parseMethod:newSource in:thisClass.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3582
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3583
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3584
                        (parser notNil and:[parser ~~ #Error]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3585
                            sel := parser selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3586
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3587
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3588
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  3589
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3590
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3591
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3592
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3593
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3594
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3595
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3596
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3597
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3598
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3599
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3600
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3601
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3602
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3603
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3604
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3605
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3606
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3607
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3608
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3609
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3610
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3611
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3612
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3613
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3614
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3615
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3616
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3617
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3618
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3619
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3620
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3621
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3622
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3623
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3624
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3625
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3626
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3627
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3628
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3629
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3630
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3631
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3632
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3633
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3634
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3635
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3636
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3637
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3638
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3639
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3640
    newSource := newSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3641
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3642
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3643
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3644
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3645
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3646
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3647
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3648
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3649
    "Created: / 24.11.1995 / 14:30:46 / cg"
4699
393443e15c9b compare fix if historyManager is enabled.
Claus Gittinger <cg@exept.de>
parents: 4632
diff changeset
  3650
    "Modified: / 21.3.2003 / 14:26:58 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3651
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3652
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3653
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3654
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3655
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3656
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3657
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3658
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3659
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3660
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3661
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3662
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3663
                          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
  3664
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3665
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3666
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3667
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3668
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3669
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3670
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3671
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3672
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3673
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3674
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3675
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3676
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3677
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3678
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3679
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3680
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3681
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3682
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3683
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3684
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3685
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3686
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3687
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3688
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3689
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  3690
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3691
    anyChanges ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3692
	self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3693
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3694
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3695
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  3696
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3697
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3698
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3699
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3700
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3701
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3702
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3703
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3704
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3705
	askForSearchString:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3706
	initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3707
	directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3708
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3709
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3710
	^ cancelBlock value
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3711
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3712
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3713
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3714
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3715
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3716
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3717
	    changeNrShown := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3718
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3719
	self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3720
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3721
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3722
	    changeNrShown := 0.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3723
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3724
	self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3725
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3726
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3727
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3728
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3729
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3730
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3731
    |searchString direction|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3732
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3733
    direction := #forward.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3734
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3735
    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3736
	|box nextButton prevButton|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3737
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3738
	box := ex parameter.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3739
	nextButton := box okButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3740
	prevButton := Button label:(resources string:'Previous').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3741
	prevButton action:[direction := #backward. box okPressed.].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3742
	box addButton:prevButton after:nextButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3743
	nextButton label:(resources string:'Next').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3744
	ex proceed.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3745
    ] do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3746
	searchString := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3747
		request:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3748
		initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3749
		onCancel:nil.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3750
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3751
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3752
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3753
	^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3754
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3755
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3756
    ^ searchString
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3757
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  3758
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3759
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3760
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3761
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3762
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3763
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3764
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3765
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3766
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  3767
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3768
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3769
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3770
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3771
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3772
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3773
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3774
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3775
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3776
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3777
    |chunk lineNr|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3778
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3779
    lineNrCollection isInteger ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3780
        lineNr := lineNrCollection
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3781
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3782
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3783
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3784
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3785
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3786
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3787
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3788
        ].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3789
    ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3790
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  3791
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3792
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3793
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3794
        changeNrShown := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3795
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  3796
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  3797
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3798
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3799
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3800
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3801
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3802
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  3803
    ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3804
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  3805
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  3806
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3807
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3808
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3809
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3810
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3811
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3812
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3813
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3814
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3815
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3816
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3817
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3818
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3819
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3820
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3821
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3822
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  3823
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  3824
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3825
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3826
    self showingDiffs value ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3827
        AbortOperationRequest catch:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3828
            self updateDiffViewFor:changeNrShown.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3829
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3830
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3831
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  3832
    "Modified: / 28.2.1999 / 15:26:46 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3833
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3834
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3835
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  3836
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3837
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3838
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3839
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3840
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3841
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3842
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3843
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3844
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3845
            ].
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3846
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3847
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  3848
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  3849
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  3850
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  3851
classOfChange:changeNr ifAbsent:exceptionBlock
4271
fa2e8c30197c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4157
diff changeset
  3852
    |className cls isMeta ownerClassName ownerClass|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3853
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  3854
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3855
    className isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3856
        ^ exceptionBlock value:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3857
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3858
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3859
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3860
    (className endsWith:' class') ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3861
        className := className copyWithoutLast:6.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3862
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3863
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  3864
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  3865
    (cls := (self nameSpaceForApply) classNamed:className) isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3866
        cls := Smalltalk classNamed:className
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  3867
    ].
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  3868
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  3869
    cls isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3870
        (className includes:$:) ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3871
            ownerClassName := className copyTo:(className lastIndexOf:$:)-1.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3872
            (ownerClassName endsWith:$:) ifTrue:[ 
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3873
                ownerClassName := ownerClassName copyWithoutLast:1 
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3874
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3875
            ownerClass := Smalltalk classNamed:ownerClassName.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3876
            ownerClass isBehavior ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3877
                ownerClass isLoaded ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3878
                    autoloadAsRequired value == true ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3879
                        ownerClass autoload.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3880
                        cls := Smalltalk classNamed:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3881
                    ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3882
                ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3883
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3884
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3885
    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3886
    cls isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3887
        ^ exceptionBlock value:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3888
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3889
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3890
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3891
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3892
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3893
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  3894
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3895
doApply
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3896
    "user wants a change to be applied"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3897
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3898
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3899
	skipSignal := nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3900
	(self applyChange:changeNr) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3901
	    ^ self "/ cancel
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3902
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3903
	self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3904
    ]
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3905
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3906
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3907
doApplyAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3908
    "user wants all changes to be applied"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  3909
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  3910
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3911
	|lastNr "{ Class: SmallInteger }" |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3912
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3913
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3914
	skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3915
	lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3916
	1 to:lastNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3917
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3918
	    self applyChange:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3919
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3920
	self autoSelectLast
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3921
    ]
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  3922
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3923
    "Modified: 21.1.1997 / 22:26:30 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  3924
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  3925
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3926
doApplyClassFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3927
    "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
  3928
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3929
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3930
	|thisClassName classNameToApply lastChange
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3931
	 lastNr "{ Class: SmallInteger }" |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3932
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3933
	classNameToApply := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3934
	classNameToApply notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3935
	    self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3936
	    skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3937
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3938
	    lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3939
	    1 to:changeNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3940
		thisClassName := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3941
		thisClassName = classNameToApply ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3942
		    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3943
		    self applyChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3944
		    lastChange := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3945
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3946
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3947
	    self autoSelect:changeNr+1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3948
	]
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3949
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3950
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3951
    "Modified: 21.1.1997 / 22:26:04 / cg"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3952
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3953
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3954
doApplyClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3955
    "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
  3956
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3957
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3958
	|thisClassName classNameToApply lastChange
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3959
	 lastNr "{ Class: SmallInteger }" |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3960
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3961
	classNameToApply := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3962
	classNameToApply notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3963
	    self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3964
	    skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3965
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3966
	    lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3967
	    changeNr to:lastNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3968
		thisClassName := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3969
		thisClassName = classNameToApply ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3970
		    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3971
		    self applyChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3972
		    lastChange := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3973
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3974
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3975
	    self autoSelect:lastChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3976
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3977
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3978
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3979
    "Modified: 21.1.1997 / 22:26:04 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  3980
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  3981
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3982
doApplyFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3983
    "user wants all changes from 1 to changeNr to be applied"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3984
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3985
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3986
	|lastNr "{ Class: SmallInteger }" |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3987
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3988
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3989
	skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3990
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3991
	1 to:changeNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3992
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3993
	    self applyChange:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3994
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3995
	self autoSelect:changeNr+1.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3996
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3997
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3998
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3999
doApplyRest
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4000
    "apply all changes from changeNr to the end"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  4001
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4002
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4003
	|lastNr "{ Class: SmallInteger }" |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4004
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4005
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4006
	skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4007
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4008
	lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4009
	changeNr to:lastNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4010
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4011
	    self applyChange:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4012
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4013
	self autoSelect:self numberOfChanges.
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4014
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4015
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4016
    "Modified: 21.1.1997 / 22:25:29 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4017
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4018
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4019
doApplyToConflictOrEnd
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4020
    "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
  4021
     or the end."
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4022
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4023
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4024
	|lastNr "{ Class: SmallInteger }"|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4025
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4026
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4027
	skipSignal isNil ifTrue:[skipSignal := Signal new].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4028
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4029
	lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4030
	changeNr to:lastNr do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4031
	    | cls sel |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4032
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4033
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4034
	    ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4035
	    and:[(sel := self selectorOfMethodChange:changeNr) notNil])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4036
	    ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4037
		(cls implements:sel) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4038
		    self autoSelect:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4039
		    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4040
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4041
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4042
	    self applyChange:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4043
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4044
	self autoSelect:self numberOfChanges.
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4045
    ]
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4046
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4047
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4048
doBrowse
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4049
    "user wants a browser on the class of a change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4050
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4051
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4052
	|cls|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4053
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4054
	cls := self classOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4055
	cls notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4056
	    UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4057
		openInClass:cls
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4058
		selector:(self selectorOfMethodChange:changeNr)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4059
	]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4060
    ]
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4061
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4062
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4063
doBrowseImplementors
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4064
    "open an implementors-browser"
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4065
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4066
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4067
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4068
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4069
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4070
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4071
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4072
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4073
		    request:'Selector to browse implementors of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4074
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4075
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4076
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4077
	    browseImplementorsMatching:selector.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4078
    ]
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4079
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4080
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4081
doBrowseSenders
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4082
    "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
  4083
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4084
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4085
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4086
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4087
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4088
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4089
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4090
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4091
		    request:'Selector to browse senders of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4092
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4093
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4094
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4095
	    browseAllCallsOn:selector asSymbol.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4096
    ]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4097
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4098
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4099
doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4100
    "first checkin the selected changes class then delete all changes
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4101
     for it."
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4102
4917
9f2476c53513 single logMessage query when checking in multiple classes
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
  4103
    |classes answer logTitle logMessage|
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4104
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4105
"/    self theSingleSelection isNil ifTrue:[
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4106
"/        ^ self information:'Only possible if a single change is selected.'.
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4107
"/    ].
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4108
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4109
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4110
	classes := IdentitySet new.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4111
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4112
	self withSelectedChangesDo:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4113
	    | className class |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4114
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4115
	    className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4116
	    className notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4117
		class := Smalltalk classNamed:className.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4118
		class isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4119
		    self error:'oops - no class: ', className mayProceed:true.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4120
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4121
		class notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4122
		    class := class theNonMetaclass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4123
		    (classes includes:class) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4124
			class isPrivate ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4125
			    (classes includes:class owningClass) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4126
				answer := self confirmWithCancel:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4127
								    bindWith:class owningClass name allBold) withCRs.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4128
				answer isNil ifTrue:[^ self].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4129
				answer ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4130
				    classes add:class owningClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4131
				]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4132
			    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4133
			] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4134
			    classes add:class
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4135
			].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4136
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4137
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4138
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4139
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4140
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4141
	classes size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4142
	    logTitle := classes first name.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4143
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4144
	    logTitle := '%1 classes' bindWith:classes size.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4145
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4146
	logMessage := SourceCodeManagerUtilities
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4147
			getLogMessageFor:logTitle
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4148
			initialAnswer:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4149
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4150
	changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4151
	classes do:[:eachClass |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4152
	    (SourceCodeManagerUtilities checkinClass:eachClass withLog:logMessage)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4153
		ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4154
		    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4155
			   from:1 to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4156
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4157
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4158
	self setChangeList.
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4159
    ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4160
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4161
    "Modified: / 6.9.1995 / 17:11:16 / claus"
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4162
    "Modified: / 17.11.2001 / 14:21:13 / cg"
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4163
!
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4164
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4165
doCompare
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4166
    "compare change with current system version
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4167
     - give a note in transcript"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4168
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4169
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4170
	self withExecuteCursorDo:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4171
	    self compareChange:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4172
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4173
	self newLabel:''
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4174
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4175
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  4176
    "Modified: 24.2.1996 / 19:37:19 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4177
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4178
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4179
doCompareAndCompress
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4180
    "remove all changes, which are equivalent to the current image version"
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4181
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4182
    |toDelete|
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4183
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4184
    toDelete := OrderedCollection new.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4185
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4186
	1 to:self numberOfChanges do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4187
	    [
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4188
		(self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4189
		    toDelete add:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4190
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4191
	    ] on:AbortOperationRequest do:[:ex|  "ignore unloaded clases" ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4192
	].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4193
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4194
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4195
    toDelete reverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4196
	self silentDeleteChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4197
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4198
    self setChangeList.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4199
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4200
     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
  4201
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4202
    changeListView firstLineShown > self numberOfChanges ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4203
	changeListView makeLineVisible:self numberOfChanges
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4204
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4205
    self clearCodeView.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4206
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4207
    self newLabel:''
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4208
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4209
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4210
doCompress
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4211
    "compress the change-set; this replaces multiple method-changes by the last
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4212
     (i.e. the most recent) change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4213
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4214
    self compressForClass:nil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4215
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4216
    "Modified: / 29.10.1997 / 01:03:26 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4217
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4218
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4219
doCompressClass
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4220
    "compress changes for the selected class.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4221
     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
  4222
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4223
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4224
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4225
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4226
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4227
    self selectedClassNames do:[:classNameToCompress |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4228
	self compressForClass:classNameToCompress.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4229
    ]
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4230
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4231
    "Created: / 29.10.1997 / 01:05:16 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4232
    "Modified: / 19.11.2001 / 21:55:17 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4233
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4234
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4235
doCompressSelector
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4236
    "compress changes for the selected class & selector.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4237
     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
  4238
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4239
    |classSelectorPairs|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4240
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4241
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4242
	^ 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
  4243
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4244
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4245
    classSelectorPairs := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4246
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4247
	| classNameToCompress selector |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4248
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4249
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4250
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4251
	    selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4252
	    selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4253
		classSelectorPairs add:(classNameToCompress -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4254
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4255
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4256
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4257
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4258
    classSelectorPairs do:[:pair |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4259
	self compressForClass:pair key selector:pair value.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4260
    ]
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4261
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4262
    "Created: / 19.11.2001 / 21:50:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4263
    "Modified: / 19.11.2001 / 22:10:08 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4264
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4265
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4266
doDelete
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4267
    "delete currently selected change(s)"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4268
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4269
    |rangeEnd rangeStart firstDeleted|
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4270
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4271
    changeListView selection size <= 5 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4272
	self withSelectedChangesReverseDo:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4273
	    self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4274
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4275
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4276
	^ self
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4277
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4278
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4279
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4280
	rangeEnd isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4281
	    rangeEnd := rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4282
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4283
	    (changeNr = (rangeEnd + 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4284
		rangeEnd := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4285
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4286
		(changeNr = (rangeStart - 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4287
		    rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4288
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4289
		    self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4290
		    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4291
		    rangeStart := rangeEnd := nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4292
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4293
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4294
	].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4295
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4296
    rangeStart notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4297
	self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4298
	firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4299
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4300
    self autoSelectOrEnd:firstDeleted
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4301
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4302
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4303
doDeleteAndSelectPrevious
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4304
    "delete currently selected change(s)"
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4305
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4306
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4307
	self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4308
	self autoSelectOrEnd:changeNr-1
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4309
    ]
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4310
!
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4311
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4312
doDeleteClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4313
    "delete all changes with same class as currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4314
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4315
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4316
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4317
    lastChangeNr := -1.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4318
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4319
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4320
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4321
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4322
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4323
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4324
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4325
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4326
	lastChangeNr := lastChangeNr max:changeNr.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4327
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4328
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4329
    overAllNumDeletedBefore := 0.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4330
    changeListView setSelection:nil.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4331
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4332
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4333
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4334
	    |numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4335
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4336
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4337
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4338
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4339
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4340
				   silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4341
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4342
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4343
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4344
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4345
	].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4346
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4347
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4348
    self setChangeList.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4349
    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
  4350
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4351
    "Created: / 13.12.1995 / 16:07:14 / cg"
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4352
    "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
  4353
!
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4354
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4355
doDeleteClassAndPrivateClassesAll
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4356
    "delete all changes with same class and private classes
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4357
     as currently selected change"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4358
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4359
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4360
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4361
    lastChangeNr := -1.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4362
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4363
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4364
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4365
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4366
	classNameToDelete := self ownerClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4367
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4368
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4369
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4370
	lastChangeNr := lastChangeNr max:changeNr.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4371
    ].
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4372
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4373
    overAllNumDeletedBefore := 0.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4374
    changeListView setSelection:nil.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4375
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4376
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4377
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4378
	    | changeNr numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4379
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4380
	    classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4381
		changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4382
		self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4383
				       from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4384
					 to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4385
		numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4386
				       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4387
				       from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4388
				       to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4389
		lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4390
		overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4391
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4392
	]
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4393
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4394
    self setChangeList.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4395
    self autoSelectOrEnd:lastChangeNr
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4396
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4397
    "Created: / 13.12.1995 / 16:07:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4398
    "Modified: / 28.1.1998 / 20:42:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4399
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4400
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4401
doDeleteClassFromBeginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4402
    "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
  4403
     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
  4404
     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
  4405
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4406
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4407
	|classNameToDelete prevSelection numDeleted|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4408
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4409
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4410
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4411
	    prevSelection := changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4412
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4413
	    numDeleted := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4414
				silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4415
				from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4416
				to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4417
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4418
	    self autoSelectOrEnd:(changeNr + 1 - numDeleted)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4419
	]
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  4420
    ].
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4421
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4422
    "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
  4423
    "Modified: 25.5.1996 / 12:26:34 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4424
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4425
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4426
doDeleteClassRest
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4427
    "delete rest of changes with same class as currently selected change"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4428
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4429
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4430
	| classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4431
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4432
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4433
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4434
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4435
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4436
				   from:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4437
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4438
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4439
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4440
	]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4441
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4442
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  4443
    "Modified: / 18.5.1998 / 14:25:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4444
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4445
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4446
doDeleteClassSelectorAll
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4447
    "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
  4448
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4449
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4450
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4451
    lastChangeNr := -1.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4452
    classNameSelectorPairsToDelete := Set new.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4453
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4454
	|className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4455
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4456
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4457
	selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4458
	selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4459
	    (className notNil and:[selector notNil]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4460
		classNameSelectorPairsToDelete add:(className -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4461
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4462
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4463
	lastChangeNr := lastChangeNr max:changeNr.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4464
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4465
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4466
    overAllNumDeletedBefore := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4467
    changeListView setSelection:nil.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4468
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4469
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4470
	classNameSelectorPairsToDelete do:[:pair |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4471
	    |numDeletedBefore className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4472
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4473
	    className := pair key.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4474
	    selector  := pair value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4475
	    self silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4476
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4477
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4478
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4479
				   silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4480
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4481
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4482
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4483
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4484
	].
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4485
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4486
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4487
    self setChangeList.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4488
    self autoSelectOrEnd:lastChangeNr
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4489
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4490
    "Created: / 13.12.1995 / 16:07:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4491
    "Modified: / 28.1.1998 / 20:42:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4492
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4493
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4494
doDeleteFromBeginning
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4495
    "delete all changes from 1 to the current"
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4496
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4497
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4498
	self deleteChangesFrom:1 to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4499
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4500
	self autoSelectOrEnd:changeNr
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4501
    ]
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4502
!
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4503
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4504
doDeleteRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4505
    "delete all changes from current to the end"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4506
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4507
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4508
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4509
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4510
	self autoSelectOrEnd:changeNr-1
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4511
    ]
132
claus
parents: 126
diff changeset
  4512
!
claus
parents: 126
diff changeset
  4513
claus
parents: 126
diff changeset
  4514
doFileoutAndDeleteClassAll
claus
parents: 126
diff changeset
  4515
    "first fileOut the selected changes class then delete all changes
claus
parents: 126
diff changeset
  4516
     for it."
claus
parents: 126
diff changeset
  4517
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4518
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4519
	| className class |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4520
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4521
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4522
	className notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4523
	    class := Smalltalk classNamed:className.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4524
	    class notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4525
		Class fileOutErrorSignal handle:[:ex |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4526
		    self warn:('fileout failed: ' , ex description).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4527
		] do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4528
		    class fileOut.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4529
		    self doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4530
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4531
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4532
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4533
	].
132
claus
parents: 126
diff changeset
  4534
    ]
claus
parents: 126
diff changeset
  4535
claus
parents: 126
diff changeset
  4536
    "Modified: 6.9.1995 / 17:11:16 / claus"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4537
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4538
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4539
doMakePatch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4540
    "user wants a change to be made a patch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4541
     - copy it over to the patches file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  4542
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4543
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4544
	self makeChangeAPatch:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4545
	self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4546
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4547
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4548
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4549
doMakePermanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4550
    "user wants a change to be made permanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4551
     - rewrite the source file where this change has to go"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4552
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4553
    |yesNoBox|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4554
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4555
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4556
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4557
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4558
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4559
    yesNoBox := YesNoBox new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4560
    yesNoBox title:(resources at:'Warning: this operation cannot be undone').
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  4561
    yesNoBox okText:(resources at:'continue') noText:(resources at:'abort').
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4562
    yesNoBox okAction:[   |changeNr|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4563
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4564
			  changeNr := self theSingleSelection.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4565
			  changeNr notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4566
			      self makeChangePermanent:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4567
			      self autoSelect:(changeNr + 1)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4568
			  ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4569
		      ].
917
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4570
    yesNoBox showAtPointer.
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4571
    yesNoBox destroy
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4572
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  4573
    "Modified: 7.1.1997 / 23:03:33 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4574
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4575
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4576
doSave
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4577
    "user wants a change to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4578
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4579
    |fileName|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4580
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4581
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4582
	fileName := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4583
			requestFileName:'Append change to:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4584
			default:(lastSaveFileName ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4585
			ok:'Append'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4586
			abort:'Abort'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4587
			pattern:'*.chg'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4588
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4589
	fileName notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4590
	    lastSaveFileName := fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4591
	    self withCursor:(Cursor write) do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4592
		self appendChange:changeNr toFile:fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4593
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4594
	    self autoSelect:(changeNr + 1)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4595
	].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4596
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4597
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4598
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4599
doSaveClass
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4600
    "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
  4601
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4602
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4603
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4604
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4605
    self doSaveClassFrom:1
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  4606
!
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  4607
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4608
doSaveClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4609
    "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
  4610
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4611
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4612
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4613
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4614
    self doSaveClassFrom:1
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4615
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4616
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4617
doSaveClassFrom:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4618
    "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
  4619
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4620
    |changeNr classNameToSave|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4621
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4622
    (changeNr := self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4623
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4624
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4625
    classNameToSave := self classNameOfChange:changeNr.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4626
    classNameToSave notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4627
	self saveClass:classNameToSave from:startNr
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4628
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4629
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4630
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4631
doSaveClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4632
    "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
  4633
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4634
    |changeNr|
132
claus
parents: 126
diff changeset
  4635
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4636
    (changeNr := self theSingleSelection) isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4637
        ^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4638
    ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4639
    self doSaveClassFrom:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4640
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4641
    changeListView setSelection:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4642
    "/ self changeSelection:changeNr.
81
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  4643
!
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  4644
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4645
doSaveRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4646
    "user wants changes from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4647
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4648
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4649
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4650
    (changeNr := 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.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4652
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4653
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4654
    fileName := Dialog
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4655
		    requestFileName:'Append changes to:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4656
		    default:(lastSaveFileName ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4657
		    ok:'Append'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4658
		    abort:'Abort'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4659
		    pattern:'*.chg'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4660
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4661
    fileName notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4662
	lastSaveFileName := fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4663
	self withCursor:(Cursor write) do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4664
	    changeNr to:(self numberOfChanges) do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4665
		changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4666
		(self appendChange:changeNr toFile:fileName) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4667
		    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4668
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4669
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4670
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4671
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4672
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4673
    "Modified: 25.5.1996 / 12:26:41 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4674
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4675
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4676
doUpdate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4677
    "reread the changes-file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4678
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4679
    self readChangesFileInBackground:true.
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4680
    self newLabel:''.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4681
    realized ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4682
	self setChangeList.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4683
    ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4684
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4685
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4686
doWriteBack
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4687
    "write back the list onto the changes file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4688
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4689
    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
  4690
        (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
  4691
            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
  4692
                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
  4693
                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
  4694
                    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
  4695
                ]
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
  4696
            ]
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
  4697
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4698
    ]
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4699
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4700
    "Modified: 5.9.1996 / 17:19:46 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4701
!
126
claus
parents: 123
diff changeset
  4702
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4703
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4704
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4705
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4706
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4707
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4708
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4709
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  4710
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4711
findClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4712
    "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
  4713
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4714
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4715
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4716
    changeNrShown notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4717
	current := self classNameOfChange:changeNrShown.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4718
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4719
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4720
    self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4721
	askForSearch:'Class to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4722
	initialAnswer:current
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4723
	thenSearchUsing:[:searchString :changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4724
			    |thisClass|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4725
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4726
			    thisClass := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4727
			    (thisClass = searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4728
			    or:[searchString includesMatchCharacters and:[searchString match:thisClass]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4729
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4730
	onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4731
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4732
    lastSearchType := #class.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4733
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4734
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4735
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4736
findNext
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4737
    "findNext menu action: select the next change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4738
     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
  4739
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4740
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4741
	^ self findNextForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4742
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4743
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4744
	^ self findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4745
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4746
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4747
	^ self findNextForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4748
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4749
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4750
	^ self findNextDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4751
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4752
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4753
    ^ self findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4754
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4755
    "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
  4756
    "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
  4757
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4758
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4759
findNextDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4760
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4761
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4762
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4763
    self findNextForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4764
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4765
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4766
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4767
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4768
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4769
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4770
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4771
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4772
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4773
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4774
findNextForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4775
    "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
  4776
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4777
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4778
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4779
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4780
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4781
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4782
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4783
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4784
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4785
    self findNextForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4786
		|thisClass|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4787
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4788
		thisClass := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4789
		(thisClass = cls
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4790
		or:[cls includesMatchCharacters and:[cls match:thisClass]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4791
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  4792
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4793
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4794
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4795
findNextForSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4796
    "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
  4797
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4798
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4799
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4800
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4801
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4802
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4803
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4804
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4805
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4806
    self findNextForWhich: [:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4807
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4808
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4809
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4810
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4811
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  4812
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4813
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4814
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4815
findNextForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  4816
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4817
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  4818
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4819
    self findNextWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4820
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4821
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4822
findNextForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4823
    "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
  4824
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4825
    self withCursor:Cursor questionMark do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4826
	Object userInterruptSignal handle:[:ex |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4827
	    self beep.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4828
	    ^ 0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4829
	] do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4830
	    |lastNr nr|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4831
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4832
	    lastNr := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4833
	    nr := changeNrShown + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4834
	    [nr <= lastNr] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4835
		(aBlock value:nr) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4836
		    changeListView setSelection:nr .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4837
		    self changeSelection:nr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4838
		    ^ nr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4839
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4840
		nr := nr + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4841
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4842
	].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4843
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  4844
    self showNotFound.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4845
    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
  4846
    ^ 0
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4847
!
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  4848
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4849
findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4850
    "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
  4851
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4852
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4853
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4854
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4855
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4856
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4857
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4858
findNextWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4859
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4860
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4861
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4862
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4863
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4864
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4865
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4866
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4867
    self findNextForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4868
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4869
	    |s|
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
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4872
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4873
		(searchString includesMatchCharacters not
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4874
			    and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4875
		or:[ searchString includesMatchCharacters
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4876
			    and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4877
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4878
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4879
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4880
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4881
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4882
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4883
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4884
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4885
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4886
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  4887
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4888
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  4889
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4890
findPrevious
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4891
    "findPrevious menu action: select the previous change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4892
     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
  4893
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4894
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4895
	^ self findPreviousForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4896
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4897
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4898
	^ self findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4899
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4900
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4901
	^ self findPreviousForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4902
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4903
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4904
	^ self findPreviousDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4905
    ].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4906
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4907
    ^ self findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4908
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4909
    "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
  4910
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4911
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4912
findPreviousDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4913
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4914
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4915
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4916
    self findPreviousForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4917
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4918
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4919
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4920
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4921
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4922
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4923
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4924
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4925
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  4926
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4927
findPreviousForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4928
    "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
  4929
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4930
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4931
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  4932
    lastSearchType := #class.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4933
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4934
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4935
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4936
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4937
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4938
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4939
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4940
		|thisClass|
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
		thisClass := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4943
		(thisClass = cls
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4944
		or:[cls includesMatchCharacters and:[cls match:thisClass]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4945
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  4946
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4947
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4948
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4949
findPreviousForSelector
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4950
    "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
  4951
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4952
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4953
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4954
    lastSearchType := #selector.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4955
    changeNrShown isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4956
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4957
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4958
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4959
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4960
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4961
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4962
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4963
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4964
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4965
		(thisSelector = sel
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4966
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4967
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  4968
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4969
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4970
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4971
findPreviousForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  4972
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4973
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  4974
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4975
    self findPreviousWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4976
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4977
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4978
findPreviousForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4979
    "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
  4980
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4981
    self withCursor:Cursor questionMark do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4982
	Object userInterruptSignal handle:[:ex |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4983
	    self beep.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4984
	    ^ 0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4985
	] do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4986
	    |nr|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4987
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4988
	    nr := changeNrShown - 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4989
	    [nr >= 1] whileTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4990
		(aBlock value:nr) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4991
		    changeListView setSelection:nr .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4992
		    self changeSelection:nr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4993
		    ^ nr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4994
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4995
		nr := nr - 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4996
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4997
	]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4998
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  4999
    self showNotFound.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5000
    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
  5001
    ^ 0
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5002
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5003
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5004
findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5005
    "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
  5006
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5007
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5008
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5009
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5010
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5011
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5012
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5013
findPreviousWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5014
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5015
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5016
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5017
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5018
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5019
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5020
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5021
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5022
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5023
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5024
	    |s includesMatchCharacters|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5025
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5026
	    includesMatchCharacters := searchString includesMatchCharacters.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5027
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5028
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5029
		(includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5030
		or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5031
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5032
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5033
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5034
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5035
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5036
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5037
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5038
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5039
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5040
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5041
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5042
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5043
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5044
findSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5045
    "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
  5046
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5047
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5048
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5049
    changeNrShown notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5050
	current := self selectorOfMethodChange:changeNrShown.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5051
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5052
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5053
    self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5054
	askForSearch:'Selector to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5055
	initialAnswer:current
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5056
	thenSearchUsing:[:searchString :changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5057
			    |thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5058
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5059
			    thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5060
			    (thisSelector = searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5061
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5062
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5063
	onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5064
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5065
    lastSearchType := #selector.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5066
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5067
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5068
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5069
findString
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5070
    |searchString directionHolder|
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5071
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5072
    lastSearchType := #string.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5073
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5074
    searchString := codeView selection.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5075
    searchString size == 0 ifTrue:[searchString := lastSearchString].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5076
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5077
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5078
	askForSearchString:'String to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5079
	initialAnswer:(searchString ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5080
	directionInto:(directionHolder := ValueHolder new).
3554
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5081
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5082
    searchString size == 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5083
	^ self
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5084
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5085
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5086
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5087
	self findPreviousWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5088
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5089
	self findNextWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5090
    ]
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5091
!
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5092
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5093
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5094
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  5095
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5096
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5097
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5098
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5099
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5100
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5101
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5102
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5103
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5104
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5105
    changeNr notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5106
	fileName := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5107
			requestFileName:'Append changes for class to:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5108
			default:(lastSaveFileName ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5109
			ok:'Append'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5110
			abort:'Abort'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5111
			pattern:'*.chg'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5112
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5113
	fileName notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5114
	    lastSaveFileName := fileName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5115
	    self withCursor:(Cursor write) do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5116
		startNr to:(self numberOfChanges) do:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5117
		    |thisClassName|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5118
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5119
		    thisClassName := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5120
		    thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5121
			self setSingleSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5122
			(self appendChange:changeNr toFile:fileName) ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5123
			    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5124
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5125
		    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5126
		]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5127
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5128
	].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5129
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5130
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5131
    "Modified: 25.5.1996 / 12:26:44 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5132
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5133
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5134
setEnforcedNameSpace
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5135
    |nsName listOfKnownNameSpaces|
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5136
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5137
    listOfKnownNameSpaces := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5138
    NameSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5139
	allNamespaces
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5140
	    do:[:eachNameSpace |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5141
		listOfKnownNameSpaces add:eachNameSpace name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5142
	    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5143
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5144
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5145
    nsName := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5146
		request:'When applying, new classes are created in nameSpace:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5147
		initialAnswer:(enforcedNameSpace ? Class nameSpaceQuerySignal query name)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5148
		list:listOfKnownNameSpaces.
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5149
    nsName size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5150
	enforcedNameSpace := NameSpace name:nsName.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5151
	autoCompare value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5152
	    self doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5153
	].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5154
    ]
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5155
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5156
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5157
setEnforcedPackage
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5158
    |pkg listOfKnownPackages|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5159
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5160
    listOfKnownPackages := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5161
    Smalltalk allClassesDo:[:eachClass |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5162
				|package|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5163
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5164
				package := eachClass package.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5165
				package size > 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5166
				    listOfKnownPackages add:package
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5167
				]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5168
			   ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5169
    listOfKnownPackages := listOfKnownPackages asOrderedCollection sort.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5170
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5171
    pkg := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5172
		request:'When applying, changes go into package:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5173
		initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5174
		list:listOfKnownPackages.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5175
    pkg size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5176
	enforcedPackage := pkg
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5177
    ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5178
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5179
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5180
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5181
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5182
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5183
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5184
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5185
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5186
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5187
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5188
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5189
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5190
changeChunks
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5191
    ^ changeChunks
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5192
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5193
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5194
changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5195
    ^ changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5196
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5197
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5198
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5199
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5200
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5201
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5202
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5203
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5204
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5205
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5206
changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5207
    ^ changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5208
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5209
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5210
changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5211
    ^ changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5212
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5213
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5214
changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5215
    ^ changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5216
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5217
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5218
changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5219
    ^ changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5220
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5221
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5222
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5223
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5224
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5225
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5226
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5227
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5228
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5229
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5230
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5231
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5232
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5233
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5234
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5235
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5236
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5237
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5238
thisIsAClassSource
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5239
    ^ thisIsAClassSource
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5240
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5241
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5242
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5243
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5244
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5245
    "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
  5246
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5247
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5248
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5249
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5250
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5251
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5252
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5253
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5254
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5255
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5256
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5257
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5258
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5259
                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
  5260
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5261
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5262
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5263
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5264
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5265
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5266
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5267
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5268
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5269
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5270
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5271
    isUnaryMessage ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5272
	className := rec receiver name.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5273
    ] ifFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5274
	className := rec name.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5275
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5276
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5277
    enforcedNameSpace notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5278
	changeClass := enforcedNameSpace classNamed:className.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5279
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5280
    changeClass isNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5281
	changeClass := Smalltalk classNamed:className.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5282
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5283
    isUnaryMessage ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5284
	changeClass notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5285
	    changeClass := changeClass class.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5286
	].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5287
	className := className , ' class'.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5288
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5289
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5290
    ^ className -> changeClass
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5291
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5292
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5293
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5294
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5295
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5296
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5297
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5298
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5299
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
  5300
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5301
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5302
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5303
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5304
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5305
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5306
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5307
    timeStampInfo notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5308
        entry colAt:4 put:timeStampInfo.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5309
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5310
    changeHeaderLines add:entry
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5311
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5312
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5313
processChunk
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5314
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5315
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5316
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5317
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5318
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5319
    changeChunks add:chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5320
    changeClassNames add:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5321
    changePositions add:chunkPosition.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5322
    changeTimeStamps add:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5323
    changeIsFollowupMethodChange add:false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5324
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5325
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5326
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5327
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5328
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5329
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5330
    ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5331
        self processMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5332
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5333
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5334
    changeString notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5335
        self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5336
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5337
        headerLine notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5338
            changeHeaderLines add:headerLine
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5339
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5340
    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5341
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5342
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5343
processMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5344
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5345
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5346
    |askedForEditingClassSource     changeClass category
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5347
     sel  cls p rec clsName done first text methodPos
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5348
     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
  5349
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5350
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5351
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5352
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5353
    singleInfo := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5354
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5355
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5356
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5357
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5358
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5359
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5360
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5361
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5362
    clsName := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5363
    p := Parser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5364
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5365
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5366
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5367
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5368
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5369
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5370
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5371
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5372
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5373
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5374
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5375
                classCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5376
                changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5377
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5378
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5379
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5380
                    methodCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5381
                    changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5382
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5383
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5384
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5385
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5386
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5387
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5388
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5389
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5390
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5391
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5392
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5393
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5394
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5395
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5396
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5397
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5398
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5399
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5400
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5401
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5402
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5403
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5404
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5405
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5406
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5407
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5408
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5409
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5410
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5411
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5412
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5413
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5414
        changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5415
        methodPos := inStream position1Based.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5416
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5417
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5418
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5419
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5420
        done ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5421
            first ifFalse:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5422
                changeChunks add:chunkText.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5423
                changeClassNames add:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5424
                changePositions add:methodPos.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5425
                changeTimeStamps add:timeStampInfo.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5426
                changeIsFollowupMethodChange add:true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5427
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5428
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5429
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5430
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5431
            ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5432
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5433
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5434
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5435
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5436
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5437
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5438
                text := text asCollectionOfLines first asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5439
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5440
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5441
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5442
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5443
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5444
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5445
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5446
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5447
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5448
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5449
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5450
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5451
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5452
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5453
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5454
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5455
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5456
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5457
                    methodChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5458
                        p := Parser
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5459
                                 parseMethodSpecification:text
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5460
                                 in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5461
                                 ignoreErrors:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5462
                                 ignoreWarnings:true.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5463
                        (p notNil and:[p ~~ #Error]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5464
                            methodSelector := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5465
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5466
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5467
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5468
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5469
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5470
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5471
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5472
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5473
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5474
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5475
                    changeType := '{ ' , category , ' }'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5476
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5477
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5478
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5479
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5480
                    changeClass isNil ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5481
                        cls := changeClass theNonMetaclass
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5482
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5483
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5484
                    (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
  5485
                        changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5486
                            changeDelta := '+'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5487
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5488
                            changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5489
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5490
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5491
                        (changeClass includesSelector:methodSelector asSymbol) ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5492
                            changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5493
                        ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5494
                            m := changeClass compiledMethodAt:methodSelector asSymbol.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5495
                            currentText := m source.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5496
                            currentText notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5497
                                text asString string withoutTrailingSeparators = currentText asString string withoutTrailingSeparators ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5498
                                    changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5499
                                ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5500
                                    t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5501
                                    t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5502
                                    t1 = t2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5503
                                        changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5504
                                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5505
                                        |tree1 tree2|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5506
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5507
                                        RBParser notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5508
                                            tree1 := RBParser parseMethod:currentText onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5509
                                            tree2 := RBParser parseMethod:text onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5510
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5511
                                            tree1 = tree2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5512
                                                changeDelta := '~'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5513
                                            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5514
                                        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5515
                                    ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5516
                                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5517
                            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5518
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5519
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5520
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5521
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5522
            self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5523
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5524
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5525
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5526
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5527
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5528
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5529
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5530
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5531
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5532
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5533
processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5534
    |s changeClass sel  cls p rec clsName ownerTree ownerName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5535
     m nameAndClass|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5536
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5537
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5538
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5539
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5540
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5541
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5542
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5543
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5544
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5545
     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
  5546
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5547
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5548
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5549
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5550
        timeStampInfo := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5551
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5552
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5553
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5554
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5555
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5556
    p := Parser parseExpression:fullChunkText inNameSpace:Smalltalk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5557
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5558
        p isMessage ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5559
            sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5560
            rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5561
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5562
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5563
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5564
        (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5565
            "/ a comment only
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5566
            changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5567
            NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5568
                changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5569
                "/ changeString := changeString allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5570
                changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5571
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5572
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5573
            changeType := '(???)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5574
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5575
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5576
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5577
    (sel == #comment:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5578
        changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5579
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5580
        changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5581
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5582
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5583
            changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5584
            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5585
            "/ changeString := clsName allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5586
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5587
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5588
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5589
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5590
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5591
                (changeClass comment = (p args at:1) evaluate) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5592
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5593
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5594
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5595
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5596
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5597
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5598
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5599
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5600
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5601
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5602
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5603
        sel := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5604
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5605
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5606
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5607
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5608
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5609
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5610
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5611
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5612
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5613
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5614
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5615
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5616
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5617
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5618
        changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5619
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5620
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5621
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5622
    (p notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5623
    and:[p ~~ #Error
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5624
    and:[p isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5625
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5626
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5627
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5628
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5629
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5630
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5631
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5632
            changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5633
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5634
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5635
            changeClass notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5636
                m := changeClass compiledMethodAt:sel asSymbol.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5637
                m notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5638
                    m category = (p args at:1) evaluate ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5639
                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5640
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5641
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5642
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5643
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5644
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5645
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5646
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5647
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5648
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5649
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5650
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5651
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5652
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5653
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5654
        changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5655
        clsName := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5656
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5657
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5658
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5659
        ('*privateIn:' match:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5660
            ownerTree := p args last.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5661
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5662
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5663
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5664
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5665
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5666
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5667
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5668
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5669
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5670
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5671
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5672
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5673
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5674
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5675
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5676
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5677
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5678
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5679
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5680
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5681
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5682
                    ((cls superclass isNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5683
                        and:[p receiver isConstant
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5684
                        and:[p receiver evaluate isNil]])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5685
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5686
                        cls superclass notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5687
                        and:[p receiver isConstant not
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5688
                        and:[cls superclass name = p receiver name]]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5689
                    ]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5690
                        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
  5691
                            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
  5692
                                (p args at:4) evaluate isEmpty ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5693
                                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5694
                                    ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5695
                                        "/ ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5696
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5697
                                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5698
                                        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
  5699
                                            changeDelta := '='.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5700
                                        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5701
                                            changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5702
                                        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5703
                                    ]
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
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5706
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5707
                    ]
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
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5710
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5711
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5712
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5713
        (#(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5714
          #'primitiveDefinitions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5715
          #'primitiveFunctions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5716
          #'primitiveVariables:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5717
         ) includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5718
            changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5719
            clsName := rec evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5720
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5721
            ((sel == #instanceVariableNames:)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5722
            and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5723
            and:[rec selector == #class]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5724
                clsName := rec receiver name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5725
                changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5726
                changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5727
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5728
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5729
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5730
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5731
                        changeDelta := '?'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5732
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5733
                        s := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5734
                        s = changeClass class instanceVariableString ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5735
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5736
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5737
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5738
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5739
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5740
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5741
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5742
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5743
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5744
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5745
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5746
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5747
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5748
    timeStampInfo := nil.
6512
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
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5751
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5752
    "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
  5753
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5754
     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
  5755
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5756
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5757
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5758
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5759
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5760
                '=' -> 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
  5761
                '~' -> 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
  5762
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5763
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5764
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5765
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5766
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5767
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5768
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5769
     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
  5770
     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
  5771
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5772
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5773
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5774
    changeChunks := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5775
    changeClassNames := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5776
    changeHeaderLines := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5777
    changePositions := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5778
    changeTimeStamps := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5779
    changeIsFollowupMethodChange := OrderedCollection new.
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
    excla := inStream class chunkSeparator.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5782
    maxLen := 60.
6512
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
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5785
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5786
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5787
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5788
        inStream skipSeparators.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5789
        chunkPosition := inStream position1Based.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5790
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5791
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5792
        chunkText := fullChunkText := inStream nextChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5793
        chunkText notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5794
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5795
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5796
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5797
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5798
    "Modified: / 27.8.1995 / 23:06:55 / claus"
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5799
    "Modified: / 9.11.2001 / 02:24:46 / cg"
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5800
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5801
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  5802
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5803
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5804
version
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5805
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.342 2006-02-03 16:31:48 cg Exp $'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  5806
! !