ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Thu, 08 Mar 2012 12:03:32 +0100
changeset 11397 5b04140c959f
parent 11396 c0b421d2e7aa
child 11475 b6fdfe902263
permissions -rw-r--r--
refactored common code
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     1
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 1
diff changeset
     2
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
     3
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     4
571fd5eee315 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
"
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    12
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    13
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    14
StandardSystemView subclass:#ChangesBrowser
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    15
	instanceVariableNames:'changeListView codeView diffView changeFileName changeChunks
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    16
		changePositions changeClassNames changeSelectors
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    17
		changeHeaderLines changeIsFollowupMethodChange anyChanges
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
    18
		changeNrShown changeNrProcessed multipleApply autoCompare
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    19
		changeFileSize changeFileTimestamp checkBlock changeTimeStamps
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    20
		tabSpec autoUpdate editingClassSource lastSearchType
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    21
		lastSearchString applyInOriginalNameSpace lastSaveFileName
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    22
		readOnly enforcedPackage enforcedNameSpace updateChangeSet
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
    23
		showingDiffs diffViewBox autoloadAsRequired
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
    24
		classesNotToBeAutoloaded encodingIfKnown
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    25
		ignorePublicPrivateCategories changeListSelectionHolder
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    26
		defaultApplicationForVAGEClasses'
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
    27
	classVariableNames:'CompressSnapshotInfo NoColoring ShowWarningDialogs
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
    28
		DefaultAutoCompare DefaultShowingDiffs LastEnforcedNameSpace
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
    29
		KeepEnforcedNameSpace'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    30
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    31
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    32
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    33
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    34
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    35
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    36
		changeFileTimestamp changeChunks changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    37
		changeHeaderLines changePositions changeTimeStamps
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    38
		changeIsFollowupMethodChange autoCompare autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    39
		tabSpec anyChanges inStream thisIsAClassSource chunkText
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    40
		chunkPosition sawExcla fullChunkText noColoring timeStampInfo
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    41
		changeString changeType changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    42
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    43
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    44
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    45
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    46
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    47
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    48
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    49
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    50
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    51
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    52
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    53
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    54
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    55
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    56
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    57
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    58
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    61
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    62
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    63
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    64
"
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    65
    this implements a browser for the changes-file 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    66
    (actually, it can display any sourceFile's contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    69
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    70
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    71
    This is a very old leftover class (it was one of the very first apps in ST/X
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    72
    and the Merovingian has not yet detected this one ;-)
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    73
    It will be completely replaced by the ChangeSetBrowser class in the near future.
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    74
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    75
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    76
    [Class variables:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    77
        CompressSnapshotInfo            if true (the default), snapshot entries
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    78
                                        are also compressed in the compress function.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    79
                                        Some users prefer them to be not compressed.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    80
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    81
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    82
    Notice:
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    83
        this needs a total rewrite, to build up a changeSet from the file
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    84
        (which did not exist when the ChangesBrowser was originally written)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    85
        and manipulate that changeSet.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    86
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    87
        This way, we get a browser for any upcoming incore changeSets for
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    88
        free. Also, this will put the chunk analysation code into Change and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    89
        subclasses (where it belongs) and give a better encapsulation and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    90
        overall structure. Do not take this as an example for good style ;-)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    91
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    92
        The Change hierarchy is currently been completed, and the changes browser
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    93
        will be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    94
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    95
    [author:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    96
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    97
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    98
    [start with:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    99
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   100
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   101
    [see also:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   102
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   103
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   104
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   105
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   106
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   107
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   108
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   109
new
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   110
    "create a new changes browser"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   111
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   112
    ^ super
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   113
	label:(self defaultLabel)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   114
	icon:(self defaultIcon)
1470
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   115
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   116
    "Modified: / 6.2.1998 / 13:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   117
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   118
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   119
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   120
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   121
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   122
    |fileName browser|
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   123
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   124
    fileName := aFilename asFilename pathName.
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   125
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   126
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   127
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   128
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   129
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   130
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   131
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   132
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   133
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   134
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   135
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   136
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   137
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   138
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   139
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   140
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   141
571fd5eee315 Initial revision
claus
parents:
diff changeset
   142
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   143
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   144
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   145
571fd5eee315 Initial revision
claus
parents:
diff changeset
   146
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   147
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   148
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   149
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   150
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   151
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   152
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   153
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   154
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   155
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   156
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   157
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   158
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   159
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   160
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   161
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   162
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   163
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   164
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   165
     (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
   166
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   167
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   168
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   169
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   170
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   171
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   172
!ChangesBrowser class methodsFor:'menu specs'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   173
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   174
flyByHelpSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   175
self halt.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   176
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   177
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   178
    "Created: / 07-09-2011 / 16:19:11 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   179
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   180
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   181
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   182
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   183
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   184
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   185
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   186
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   187
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   188
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   189
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   190
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   191
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   192
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   193
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   194
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   195
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   196
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   197
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   198
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   199
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   200
            label: 'File'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   201
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   202
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   203
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   204
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   205
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   206
                  label: 'Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   207
                  itemValue: doCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   208
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   209
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   210
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   211
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   212
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   213
                  label: 'Compress for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   214
                  itemValue: doCompressClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   215
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   216
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   217
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   218
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   219
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   220
                  label: 'Compress for Class && Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   221
                  itemValue: doCompressSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   222
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   223
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   224
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   225
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   226
                  label: 'Compare and Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   227
                  itemValue: doCompareAndCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   228
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   229
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   230
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   231
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   232
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   233
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   234
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   236
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   237
                  label: 'Fileout && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   238
                  itemValue: doFileoutAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   240
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   241
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   242
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   243
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   244
                  label: 'CheckIn && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   245
                  itemValue: doCheckinAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   246
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   247
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   248
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   249
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   250
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   251
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   252
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   253
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   254
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   255
                  label: 'Save In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   256
                  itemValue: doSave
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   257
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   258
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   259
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   260
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   261
                  label: 'Save to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   262
                  itemValue: doSaveRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   263
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   264
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   265
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   266
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   267
                  label: 'Save for Class to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   268
                  itemValue: doSaveClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   269
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   270
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   271
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   272
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   273
                  label: 'Save all for Class In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   274
                  itemValue: doSaveClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   275
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   276
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   277
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   278
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   279
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   280
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   281
                  label: 'Writeback ClassFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   282
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   283
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   284
                  isVisible: editingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   285
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   286
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   287
                  label: 'Writeback ChangeFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   288
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   289
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   290
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   291
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   292
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   293
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   294
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   295
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   296
                  label: 'Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   297
                  itemValue: doUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   298
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   299
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   300
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   301
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   302
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   303
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   304
                  label: 'Exit'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   305
                  itemValue: menuExit
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   306
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   307
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   308
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   309
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   310
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   311
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   312
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   313
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   314
            label: 'Change'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   315
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   316
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   317
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   318
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   319
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   320
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   321
                  label: 'Apply'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   322
                  itemValue: doApply
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   323
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   324
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   325
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   326
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   327
                  label: 'Apply to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   328
                  itemValue: doApplyRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   329
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   330
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   331
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   332
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   333
                  label: 'Apply from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   334
                  itemValue: doApplyFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   335
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   336
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   337
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   338
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   339
                  label: 'Apply for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   340
                  itemValue: doApplyClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   341
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   342
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   343
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   344
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   345
                  label: 'Apply for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   346
                  itemValue: doApplyClassFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   347
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   348
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   349
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   350
                  enabled: hasNoSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   351
                  label: 'Apply All'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   352
                  itemValue: doApplyAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   353
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   354
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   355
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   356
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   357
                  label: 'Apply to Conflict or End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   358
                  itemValue: doApplyToConflictOrEnd
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   359
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   360
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   361
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   362
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   363
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   364
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   365
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   366
                  label: 'Delete'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   367
                  itemValue: doDelete
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   368
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   369
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   370
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   371
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   372
                  label: 'Delete to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   373
                  itemValue: doDeleteRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   374
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   375
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   376
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   377
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   378
                  label: 'Delete from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   379
                  itemValue: doDeleteFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   380
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   381
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   382
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   383
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   384
                  label: 'Delete for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   385
                  itemValue: doDeleteClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   386
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   387
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   388
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   389
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   390
                  label: 'Delete for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   391
                  itemValue: doDeleteClassFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   392
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   393
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   394
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   395
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   396
                  label: 'Delete all for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   397
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   398
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   399
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   400
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   401
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   402
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   403
                  label: 'Delete all for Class && its Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   404
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   405
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   406
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   407
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   408
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   409
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   410
                  label: 'Delete all for Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   411
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   412
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   413
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   414
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   415
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   416
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   417
                  label: 'Delete all for Classes && their Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   418
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   419
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   420
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   421
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   422
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   423
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   424
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   425
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   426
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   427
                  label: 'Delete all Versions of Selected Method'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   428
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   429
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   430
                  isVisible: hasNoMultiSelectionHolder
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   431
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   432
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   433
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   434
                  label: 'Delete all Versions of all Selected Methods'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   435
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   436
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   437
                  isVisible: hasMultiSelectionHolder
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   438
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   439
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   440
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   441
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   442
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   443
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   444
                  label: 'Compare with Current'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   445
                  itemValue: doCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   446
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   447
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   448
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   449
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   450
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   451
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   452
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   453
                  label: 'Make Change a Patch'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   454
                  itemValue: doMakePatch
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   455
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   456
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   457
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   458
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   459
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   460
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   461
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   462
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   463
            label: 'Search'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   464
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   465
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   466
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   467
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   468
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   469
                  label: 'Class...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   470
                  itemValue: findClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   471
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   472
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   473
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   474
                  enabled: hasSelection
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   475
                  label: 'First for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   476
                  itemValue: findFirstForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   477
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   478
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   479
               (MenuItem
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   480
                  enabled: hasSelection
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   481
                  label: 'Previous for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   482
                  itemValue: findPreviousForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   483
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   484
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   485
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   486
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   487
                  label: 'Next for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   488
                  itemValue: findNextForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   489
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   490
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   491
               (MenuItem
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   492
                  enabled: hasSelection
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   493
                  label: 'Last for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   494
                  itemValue: findLastForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   495
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   496
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   497
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   498
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   499
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   500
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   501
                  label: 'Selector...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   502
                  itemValue: findSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   503
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   504
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   505
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   506
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   507
                  label: 'Previous for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   508
                  itemValue: findPreviousForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   509
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   510
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   511
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   512
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   513
                  label: 'Next for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   514
                  itemValue: findNextForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   515
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   516
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   517
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   518
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   519
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   520
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   521
                  label: 'String...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   522
                  itemValue: findString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   523
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   524
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   525
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   526
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   527
                  label: 'Previous with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   528
                  itemValue: findPreviousForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   529
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   530
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   531
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   532
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   533
                  label: 'Next with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   534
                  itemValue: findNextForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   535
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   536
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   537
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   538
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   539
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   540
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   541
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   542
                  label: 'Previous Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   543
                  itemValue: findPreviousDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   544
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   545
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   546
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   547
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   548
                  label: 'Next Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   549
                  itemValue: findNextDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   550
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   551
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   552
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   553
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   554
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   555
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   556
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   557
                  label: 'Previous Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   558
                  itemValue: findPreviousSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   559
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   560
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   561
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   562
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   563
                  label: 'Next Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   564
                  itemValue: findNextSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   565
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   566
                )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   567
               (MenuItem
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   568
                  label: 'Last Snapshot'
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   569
                  itemValue: findLastSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   570
                  translateLabel: true
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   571
                )
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   572
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   573
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   574
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   575
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   576
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   577
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   578
            label: 'Browse'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   579
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   580
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   581
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   582
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   583
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   584
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   585
                  label: 'Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   586
                  itemValue: doBrowse
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   587
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   588
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   589
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   590
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   591
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   592
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   593
                  label: 'Senders...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   594
                  itemValue: doBrowseSenders
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   595
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   596
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   597
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   598
                  label: 'Implementors...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   599
                  itemValue: doBrowseImplementors
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   600
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   601
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   602
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   603
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   604
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   605
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   606
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   607
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   608
            label: 'Settings'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   609
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   610
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   611
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   612
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   613
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   614
                  label: 'Auto Compare'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   615
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   616
                  indication: autoCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   617
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   618
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   619
                  label: 'Autoload As Required'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   620
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   621
                  indication: autoloadAsRequired
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   622
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   623
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   624
                  label: 'Show Diffs'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   625
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   626
                  indication: showingDiffs
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   627
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   628
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   629
                  label: 'Auto Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   630
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   631
                  indication: autoUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   632
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   633
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   634
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   635
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   636
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   637
                  label: 'Add to ChangeSet when Applying'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   638
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   639
                  indication: updateChangeSet
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   640
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   641
               (MenuItem
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   642
                  label: 'Ignore public/private categories (Dolphin code)'
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   643
                  itemValue: ignorePublicPrivateCategories:
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   644
                  translateLabel: true
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   645
                  indication: ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   646
                )
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   647
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   648
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   649
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   650
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   651
                  label: 'Apply into Package...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   652
                  itemValue: setEnforcedPackage
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   653
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   654
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   655
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   656
                  label: 'Apply into NameSpace...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   657
                  itemValue: setEnforcedNameSpace
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   658
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   659
                )
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   660
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   661
                  label: '-'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   662
                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   663
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   664
                  label: 'Settings...'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   665
                  itemValue: openSettingsDialog
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   666
                  translateLabel: true
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   667
                )
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   668
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   669
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   670
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   671
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   672
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   673
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   674
            label: 'MENU_Help'
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   675
            translateLabel: true
7415
746d97a85c4c #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 7363
diff changeset
   676
            startGroup: conditionalRight
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   677
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   678
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   679
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   680
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   681
                  label: 'ChangesBrowser Documentation'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   682
                  itemValue: openHTMLDocument:
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   683
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   684
                  argument: 'tools/cbrowser/TOP.html'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   685
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   686
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   687
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   688
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   689
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   690
                  label: 'About ChangesBrowser...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   691
                  itemValue: openAboutThisApplication
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   692
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   693
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   694
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   695
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   696
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   697
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   698
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   699
         )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   700
        nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   701
        nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   702
      )
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   703
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   704
    "Modified: / 25-12-2011 / 11:21:56 / cg"
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   705
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   706
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   707
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   708
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   709
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   710
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   711
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   712
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   713
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   714
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   715
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   716
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   717
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   718
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   719
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   720
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   721
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   722
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   723
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   724
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   725
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   726
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   727
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   728
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   729
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   730
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   731
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   732
            hideMenuOnActivated: false
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   733
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   734
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   735
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   736
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   737
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   738
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   739
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   740
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   741
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   742
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   743
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   744
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   745
            hideMenuOnActivated: false
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   746
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   747
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   748
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   749
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   750
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   751
      )
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   752
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   753
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   754
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   755
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   756
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   757
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   758
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   759
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   760
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   761
    (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
   762
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   763
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   764
	    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
   765
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   766
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   767
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   768
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   769
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   770
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   771
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   772
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   773
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   774
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   775
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   776
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   777
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   778
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   779
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   780
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   781
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   782
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   783
readXMLChangesFromFile:changeFileName inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   784
    |s set|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   785
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   786
    s := changeFileName asFilename readStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   787
    set := self readXMLChangesFrom:s inBackground:inBackground.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   788
    s close.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   789
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   790
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   791
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   792
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   793
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   794
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   795
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   796
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   797
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   798
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   799
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   800
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   801
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   802
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   803
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   804
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   805
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   806
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   807
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   808
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   809
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   810
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   811
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   812
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   813
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   814
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   815
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   816
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   817
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   818
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   819
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   820
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   821
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   822
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   823
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   824
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   825
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   826
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   827
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   828
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   829
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   830
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   831
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   832
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   833
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   834
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   835
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   836
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   837
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   838
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   839
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   840
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   841
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   842
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   843
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   844
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   845
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   846
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   847
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   848
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   849
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   850
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   851
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   852
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   853
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   854
        changeListSelectionHolder := nil asValue.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   855
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   856
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   857
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   858
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   859
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   860
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   861
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   862
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   863
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   864
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   865
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   866
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   867
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   868
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   869
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   870
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   871
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   872
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   873
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   874
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   875
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   876
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   877
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   878
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   879
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   880
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   881
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   882
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   883
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   884
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   885
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   886
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   887
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   888
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   889
hasSelection
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   890
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   891
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   892
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   893
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   894
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   895
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   896
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   897
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   898
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   899
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   900
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   901
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   902
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   903
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   904
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   905
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   906
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   907
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   908
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   909
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   910
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   911
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   912
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   913
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   914
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   915
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   916
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   917
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   918
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   919
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   920
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   921
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   922
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   923
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   924
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   925
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   926
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   927
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   928
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   929
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   930
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   931
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   932
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   933
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   934
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   935
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   936
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   937
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   938
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   939
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   940
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   941
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   942
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   943
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   944
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   945
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   946
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   947
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   948
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   949
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   950
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   951
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   952
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   953
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   954
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   955
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   956
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   957
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   958
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   959
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   960
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   961
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   962
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   963
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   964
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
   965
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   966
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   967
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   968
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   969
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   970
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   971
    "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
   972
     be written when compiling. Return false here."
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
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   975
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   976
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
   977
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   978
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   979
correctableError:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   980
    "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
   981
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   982
     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
   983
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   984
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   985
    ShowWarningDialogs == true ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   986
	self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   987
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   988
	Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   989
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   990
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   991
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   992
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   993
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   994
    "compiler notifys us of a warning"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   995
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   996
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   997
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   998
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   999
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1000
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1001
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1002
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1003
    "compiler notifys us of an error - this should really not happen since
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1004
     changes ought to be correct (did someone edit the changes file ??).
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1005
     Show the bad change in the codeView and let codeView hilight the error;
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1006
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1007
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1008
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1009
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1010
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1011
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1012
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1013
error:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1014
    "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
  1015
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1016
     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
  1017
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1018
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1019
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1020
    (changeNrProcessed ~~ changeNrShown) ifTrue:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1021
        self changeSelection:changeNrProcessed
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1022
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1023
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1024
    "if more than a singe change is applied,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1025
     ask the user if he wants to abort the whole sequence of operations..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1026
    multipleApply == true ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1027
        codeView highlightingErrorPosition:relPos to:relEndPos do:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1028
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1029
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1030
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1031
             start dialog - make certain cleanup is done
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1032
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1033
            action := OptionBox
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1034
                          request:aString
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1035
                          label:'Error'
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1036
                          image:(WarningBox iconBitmap)
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1037
                          buttonLabels:#('Cancel All' 'Skip this Change' " 'Shut up' " 'Continue')
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1038
                          values:#(abortAll skip "shutUp" continue)
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1039
                          default:#continue
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1040
                          onCancel:#abort.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1041
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1042
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1043
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1044
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1045
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1046
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1047
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1048
        action == #abortAll ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1049
            AbortAllOperationRequest raise.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1050
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1051
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1052
        action == #skip ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1053
            AbortOperationRequest raise.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1054
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1055
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1056
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1057
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1058
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1059
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1060
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1061
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1062
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1063
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1064
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1065
     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
  1066
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1067
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1068
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1069
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1070
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1071
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1072
warning:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1073
    "compiler notifys us of a warning - ignore it"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1074
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1075
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1076
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1077
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1078
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1079
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1080
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1081
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1082
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1083
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1084
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1085
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1086
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1087
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1088
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1089
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1090
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1091
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1092
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1093
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1094
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1095
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1096
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1097
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1098
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1099
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1100
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1101
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1102
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1103
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1104
    (key == #Delete) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1105
	self sensor shiftDown ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1106
	    self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1107
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1108
	    self doDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1109
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1110
	^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1111
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1112
    (key == #BackSpace) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1113
	self doDeleteAndSelectPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1114
	^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1115
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1116
    (key == #Accept) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1117
	self doApply.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1118
	^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1119
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1120
    (key == #Find) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1121
	self findClass.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1122
	^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1123
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1124
    (key == #FindPrev) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1125
	self findPrevious.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1126
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1127
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1128
    (key == #FindNext) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
	self findNext.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1130
	^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1131
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1132
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1133
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1134
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1135
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1136
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1137
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1138
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1139
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1140
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1141
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1142
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1143
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1144
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1145
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1146
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1147
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1148
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1149
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1150
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1151
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1152
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1153
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1154
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1155
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1156
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1157
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1158
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1159
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1160
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1161
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1162
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1163
    doCompare ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1164
	self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1165
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1166
	changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1167
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1168
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1169
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1170
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1171
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1172
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1173
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1174
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1175
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1176
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1177
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1178
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1179
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1180
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1181
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1182
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1183
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1184
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1185
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1186
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1187
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1188
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1189
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1190
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1191
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1192
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1193
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1194
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1195
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1196
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1197
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1198
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1199
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1200
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1201
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1202
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1203
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1204
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1205
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1206
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1207
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1208
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1209
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1210
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1211
                ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1212
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1213
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1214
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1215
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1216
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1217
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1218
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1219
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1220
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1221
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1222
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1223
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1224
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1225
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1226
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1227
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1228
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1229
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1230
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1231
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1232
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1233
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1234
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1235
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1236
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1237
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1238
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1239
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1240
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1241
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1242
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1243
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1244
                 #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1245
                          ('Delete All for Classes'         doDeleteClassAll                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1246
                          ('Delete All for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1247
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1248
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1249
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1250
                 #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1251
                          ('Delete All for Class'         doDeleteClassAll                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1252
                          ('Delete All for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1253
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1254
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1255
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1256
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1257
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1258
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1259
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1260
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1261
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1262
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1263
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1264
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1265
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1266
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1267
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1268
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1269
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1270
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1271
                      ('Fileout & Delete All for Class' doFileoutAndDeleteClassAll     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1272
                      ('CheckIn & Delete All for Class' doCheckinAndDeleteClassAll     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1273
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1274
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1275
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1276
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1277
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1278
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1279
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1280
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1281
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1282
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1283
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1284
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1285
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1286
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1287
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1288
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1289
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1290
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1291
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1292
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1293
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1294
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1295
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1296
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1297
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1298
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1299
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1300
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1301
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1302
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1303
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1304
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1305
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1306
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1307
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1308
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1309
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1310
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1311
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1312
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1313
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1314
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1315
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1316
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1317
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1318
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1319
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1320
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1321
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1322
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1323
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1324
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1325
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1326
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1327
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1328
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1329
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1330
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1331
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1332
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1333
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1334
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1335
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1336
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1337
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1338
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1339
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1340
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1341
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1342
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1343
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1344
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1345
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1346
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1347
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1348
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1349
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1350
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1351
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1352
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1353
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1354
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1355
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1356
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1357
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1358
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1359
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1360
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1361
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1362
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1363
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1364
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1365
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1366
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1367
initialize
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1368
    |panel v upperFrame buttonPanel menuPanel mH toolbarMenu tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1369
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1370
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1371
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1372
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1373
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1374
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1375
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1376
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1377
    encodingIfKnown := nil.
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1378
    autoCompare := (DefaultAutoCompare ? false) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1379
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1380
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1381
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1382
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1383
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1384
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1385
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1386
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1387
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1388
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1389
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1390
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1391
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1392
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1393
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1394
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1395
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1396
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1397
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1398
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1399
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1400
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1401
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1402
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1403
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1404
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1405
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1406
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1407
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1408
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1409
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1410
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1411
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1412
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1413
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1414
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1415
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1416
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1417
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1418
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1419
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1420
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1421
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1422
        toolbarMenu menu:(self toolbarMenu).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1423
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1424
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1425
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1426
        mH := mH + tmH + 1.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1427
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1428
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1429
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1430
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1431
    panel := VariableVerticalPanel origin:(0.0 @ mH)
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1432
                                   corner:(1.0 @ 1.0)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1433
                              borderWidth:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1434
                                       in:self.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1435
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1436
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1437
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1438
        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
  1439
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1440
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1441
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1442
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1443
        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
  1444
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1445
        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
  1446
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1447
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1448
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1449
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1450
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1451
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1452
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1453
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1454
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1455
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1456
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1457
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1458
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1459
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1460
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1461
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1462
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1463
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1464
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1465
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1466
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1467
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1468
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1469
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1470
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1471
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1472
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1473
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1474
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1475
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1476
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1477
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1478
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1479
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1480
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1481
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1482
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1483
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1484
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1485
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1486
    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
  1487
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1488
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1489
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1490
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1491
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1492
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1493
    lbl := Label label:'Current' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1494
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1495
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1496
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1497
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1498
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1499
    lbl := Label label:'Change' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1500
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1501
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1502
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1503
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1504
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1505
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1506
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1507
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1508
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1509
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1510
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1511
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1512
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1513
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1514
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1515
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1516
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1517
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1518
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1519
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1520
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1521
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1522
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1523
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1524
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1525
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1526
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1527
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1528
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1529
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1530
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1531
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1532
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1533
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1534
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1535
    "Modified: / 03-01-2012 / 15:28:45 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1536
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1537
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1538
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1539
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1540
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1541
    self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1542
    changeListView action:[:lineNr | self changeSelection:lineNr].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1543
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1544
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1545
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1546
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1547
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1548
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1549
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1550
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1551
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1552
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1553
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1554
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1555
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1556
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1557
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1558
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1559
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1560
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1561
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1562
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1563
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1564
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1565
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1566
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1567
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1568
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1569
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1570
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1571
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1572
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1573
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1574
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1575
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1576
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1577
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1578
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1579
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1580
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1581
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1582
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1583
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1584
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1585
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1586
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1587
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1588
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1589
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1590
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1591
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1592
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1593
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1594
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1595
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1596
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1597
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1598
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1599
            box title:('The modified changelist has not been written back to the change file.\\Write change file before exiting ?') withCRs.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1600
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1601
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1602
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1603
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1604
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1605
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1606
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1607
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1608
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1609
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1610
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1611
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1612
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1613
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1614
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1615
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1616
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1617
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1618
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1619
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1620
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1621
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1622
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1623
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1624
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  1625
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1626
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1627
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1628
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1629
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1630
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1631
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1632
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  1633
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1634
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1635
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1636
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1637
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1638
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1639
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1640
openSettingsDialog
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1641
    |settingsList settingsApp|
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1642
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1643
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1644
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1645
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1646
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1647
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1648
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1649
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1650
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1651
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1652
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1653
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1654
    settingsApp := SettingsDialog new.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1655
    "/ settingsApp requestor:self.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1656
    settingsApp installSettingsEntries:settingsList.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1657
    settingsApp allButOpen.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1658
    settingsApp window label:('Debugger Settings').
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1659
    settingsApp openWindow.
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1660
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  1661
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1662
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1663
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1664
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1665
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1666
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1667
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1668
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1669
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1670
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1671
    self class autoSelectNext ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1672
	(changeNr <= self numberOfChanges) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1673
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1674
	    self changeSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1675
	    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1676
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1677
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1678
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1679
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1680
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1681
    "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
  1682
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1683
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1684
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1685
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1686
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1687
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1688
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1689
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1690
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1691
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1692
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1693
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1694
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1695
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1696
    changeNr < last ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1697
	self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1698
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1699
	last == 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1700
	    last := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1701
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1702
	changeListView setSelection:last .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1703
	self changeSelection:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1704
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1705
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  1706
    "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
  1707
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1708
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1709
beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1710
    UserPreferences current beepInEditor ifTrue:[                
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1711
        super beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1712
    ]
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1713
!
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  1714
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1715
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1716
    "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
  1717
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1718
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1719
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  1720
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1721
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1722
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1723
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1724
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1725
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1726
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1727
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1728
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1729
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1730
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1731
        answer := (self confirmWithCancel:(resources
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1732
                    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
  1733
                    with:cls name allBold)).
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1734
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1735
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1736
    answer isNil ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1737
        "cancel the operation"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1738
        AbortAllOperationRequest raise.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1739
        "not reached"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1740
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1741
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1742
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1743
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1744
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1745
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  1746
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1747
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1748
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1749
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  1750
    ^ false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1751
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1752
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1753
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1754
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1755
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1756
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1757
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1758
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1759
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1760
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1761
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1762
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1763
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1764
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1765
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1766
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1767
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1768
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1769
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1770
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1771
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1772
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1773
currentSourceForParseTree:parseTree
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1774
    |selector thisClass method mClass superClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1775
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1776
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1777
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1778
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1779
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1780
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1781
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1782
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1783
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1784
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1785
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1786
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1787
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1788
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1789
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1790
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1791
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1792
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1793
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1794
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1795
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1796
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1797
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1798
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1799
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1800
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1801
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1802
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1803
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1804
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1805
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1806
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1807
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1808
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1809
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1810
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1811
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1812
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1813
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1814
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1815
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1816
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1817
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1818
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1819
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1820
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1821
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1822
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1823
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1824
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1825
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1826
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1827
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1828
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1829
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1830
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1831
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1832
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1833
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1834
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1835
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1836
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1837
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1838
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1839
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1840
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1841
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1842
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  1843
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1844
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1845
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1846
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1847
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1848
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1849
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1850
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  1851
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1852
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1853
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1854
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1855
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1856
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1857
                    ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1858
                        ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1859
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1860
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1861
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1862
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1863
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1864
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1865
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1866
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1867
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1868
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1869
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1870
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1871
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1872
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1873
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1874
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1875
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1876
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1877
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1878
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1879
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1880
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1881
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1882
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1883
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1884
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1885
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1886
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1887
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1888
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1889
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1890
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1891
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1892
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1893
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1894
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1895
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1896
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1897
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1898
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1899
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1900
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1901
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1902
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1903
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1904
            ownerClass isNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1905
                ^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1906
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1907
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1908
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1909
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1910
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1911
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1912
            thisClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1913
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1914
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1915
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1916
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  1917
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1918
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1919
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1920
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  1921
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1922
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1923
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1924
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1925
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1926
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1927
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1928
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1929
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1930
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1931
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1932
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1933
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1934
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1935
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1936
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1937
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1938
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1939
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1940
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1941
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1942
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1943
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1944
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1945
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1946
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1947
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1948
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1949
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1950
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1951
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1952
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1953
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1954
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  1955
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1956
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  1957
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1958
parseExpression:chunk
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1959
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1960
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1961
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1962
parseExpression:text inNameSpace:nameSpace
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1963
    |parser p|
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1964
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1965
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1966
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1967
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1968
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1969
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1970
    parser := Parser for:(ReadStream on:text).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1971
    parser parserFlags allowQualifiedNames:true.
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1972
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1973
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1974
    ] do:[
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1975
        p := parser 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1976
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1977
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1978
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1979
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1980
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  1981
    ].
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1982
    ^ p
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1983
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  1984
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1985
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1986
    "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
  1987
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1988
    ^ 'Quit without updating changeFile ?'
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
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1991
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1992
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1993
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1994
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  1995
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1996
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1997
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1998
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1999
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2000
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2001
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2002
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2003
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2004
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2005
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2006
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  2007
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2008
setChangeList
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2009
    "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
  2010
     view"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2011
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2012
    changeListView setList:changeHeaderLines expandTabs:false redraw:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2013
    changeListView invalidate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2014
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2015
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2016
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2017
    "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
  2018
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2019
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2020
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2021
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2022
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2023
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2024
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2025
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2026
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2027
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2028
showNotFound
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2029
    |savedCursor|
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
    savedCursor := cursor.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2032
    [
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2033
	self cursor:(Cursor cross).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2034
	self beep.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2035
	Delay waitForMilliseconds:300.
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  2036
    ] ensure:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2037
	self cursor:savedCursor
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2038
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2039
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2040
    "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
  2041
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2042
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2043
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2044
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2045
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2046
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2047
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2048
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2049
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2050
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2051
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2052
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2053
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2054
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2055
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2056
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2057
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  2058
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2059
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2060
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2061
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2062
    changeListView setSelection:nil.
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
    "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
  2065
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2066
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2067
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2068
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2069
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2070
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2071
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2072
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2073
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2074
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2075
    "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
  2076
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2077
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2078
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2079
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2080
    changeNrSelection := changeListView selection.
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2081
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2082
    "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2083
     ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2084
    multipleApply := changeNrSelection size > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2085
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2086
    changeListView multipleSelectOk ifFalse:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2087
        changeNrSelection notNil ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2088
            self withExecuteCursorDo:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2089
                aBlock value:changeNrSelection
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2090
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2091
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2092
    ] ifTrue:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2093
        changeNrSelection size > 0 ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2094
            self withExecuteCursorDo:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2095
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2096
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2097
                changeNumbers := changeNrSelection copy sort.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2098
                order == #reverse ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2099
                    changeNumbers reverse
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2100
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2101
                changeNumbers do:aBlock
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2102
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  2103
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2104
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2105
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2106
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2107
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2108
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2109
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2110
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  2111
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2112
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2113
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2114
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2115
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2116
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2117
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2118
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2119
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2120
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2121
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  2122
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2123
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2124
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2125
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2126
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2127
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2128
    "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
  2129
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2130
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2131
    ^ changeIsFollowupMethodChange at:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2132
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2133
    "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
  2134
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2135
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2136
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2137
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2138
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2139
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2140
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2141
    (self classNameOfChange:changeNr) isNil ifTrue:[
6288
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
	 get the chunk
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2144
	"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2145
	chunk := changeChunks at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2146
	"mhmh - empty ??"
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2147
	chunk notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2148
	    (chunk startsWith:'''---') ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2149
		words := chunk asCollectionOfWords.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2150
		words size > 2 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2151
		    (words at:2) = 'snapshot' ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2152
			^ true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2153
		    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2154
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2155
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2156
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2157
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2158
    ^ false
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2159
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2160
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2161
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2162
    "mhmh - seems to always return the name of the nonMeta class - is this OK?"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2163
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2164
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2165
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2166
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2167
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2168
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2169
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2170
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2171
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2172
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2173
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2174
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2175
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2176
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2177
            recTree := recTree receiver
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2178
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2179
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2180
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2181
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2182
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2183
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2184
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2185
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2186
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2187
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2188
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2189
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2190
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2191
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2192
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2193
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2194
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2195
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2196
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2197
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2198
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2199
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2200
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2201
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2202
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2203
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2204
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2205
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2206
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2207
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2208
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2209
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2210
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2211
    sel := fullParseTree selector.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2212
    arg1Tree := fullParseTree arg1.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2213
    (arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2214
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2215
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2216
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2217
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2218
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2219
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2220
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2221
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2222
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2223
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2224
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2225
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2226
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2227
    "Created: / 08-03-2012 / 09:34:04 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2228
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2229
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2230
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2231
    "extrat the class name from a method-change, methodRemove or comment-change's
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2232
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2233
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2234
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2235
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2236
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2237
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2238
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2239
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2240
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2241
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2242
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2243
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2244
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2245
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2246
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2247
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2248
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2249
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2250
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2251
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2252
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2253
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2254
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2255
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2256
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2257
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2258
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2259
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2260
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2261
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2262
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2263
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2264
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2265
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2266
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2267
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2268
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2269
    |recTree arg1Tree|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2270
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2271
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2272
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2273
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2274
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2275
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2276
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2277
        arg1Tree := aParseTree arg1.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2278
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2279
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2280
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2281
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2282
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2283
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2284
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2285
    "Created: / 08-03-2012 / 09:36:59 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2286
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2287
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2288
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2289
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2290
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2291
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2292
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2293
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2294
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2295
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2296
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2297
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2298
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2299
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2300
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2301
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2302
            arg2Tree := aParseTree arg2.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2303
            (arg2Tree notNil and:[arg2Tree isConstant]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2304
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2305
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2306
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2307
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2308
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2309
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2310
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2311
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2312
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2313
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2314
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2315
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2316
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2317
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2318
     (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
  2319
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2320
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2321
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2322
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2323
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2324
    (name endsWith:' class') ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2325
	name := name copyWithoutLast:6
2263
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
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2328
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2329
    "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
  2330
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2331
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2332
extractSelectorOfMethodChange:changeNr
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2333
    "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
  2334
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2335
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2336
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2337
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2338
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2339
        (self classNameOfChange:changeNr) notNil ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2340
            chunk := changeChunks at:changeNr.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2341
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2342
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2343
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2344
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2345
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2346
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2347
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2348
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2349
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2350
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2351
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2352
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2353
                sel := aParseTree arguments at:1.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2354
                sel isConstant ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2355
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2356
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2357
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2358
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2359
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2360
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2361
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2362
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2363
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2364
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2365
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2366
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2367
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2368
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2369
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2370
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2371
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2372
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2373
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2374
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2375
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2376
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2377
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2378
    "Created: 24.11.1995 / 14:30:46 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2379
    "Modified: 5.9.1996 / 17:12:50 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2380
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2381
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2382
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2383
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2384
     (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
  2385
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2386
    |chunk aParseTree sel name prevMethodDefNr words oldDollarSetting|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2387
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2388
    changeNr isNil ifTrue:[^ nil].
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
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2391
    "
5145
5e2add158e16 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5144
diff changeset
  2392
    name := changeClassNames at:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2393
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2394
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2395
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2396
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2397
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2398
    prevMethodDefNr := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2399
    [changeIsFollowupMethodChange at:prevMethodDefNr] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2400
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2401
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2402
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2403
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2404
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2405
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2406
    chunk := changeChunks at:prevMethodDefNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2407
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2408
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2409
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2410
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2411
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2412
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2413
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2414
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2415
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2416
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2417
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2418
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2419
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2420
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2421
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2422
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2423
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2424
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2425
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2426
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2427
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2428
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2429
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2430
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2431
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2432
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2433
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2434
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  2435
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2436
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2437
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2438
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2439
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2440
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2441
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2442
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  2443
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2444
        Parser allowDollarInIdentifier:oldDollarSetting
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
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2447
        ^ 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
  2448
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2449
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2450
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2451
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2452
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2453
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2454
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2455
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2456
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2457
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2458
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2459
     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
  2460
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2461
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2462
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2463
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2464
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2465
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2466
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2467
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2468
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2469
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2470
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2471
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2472
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2473
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2474
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2475
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2476
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2477
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2478
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  2479
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2480
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2481
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2482
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2483
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2484
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2485
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2486
    ].
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
     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
  2490
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2491
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  2492
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2493
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2494
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2495
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2496
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2497
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2498
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2499
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2500
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2501
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2502
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2503
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2504
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
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2507
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2508
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2509
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  2510
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2511
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2512
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2513
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2514
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2515
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2516
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  2517
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2518
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2519
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  2520
    "Modified: / 08-03-2012 / 11:42:32 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2521
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2522
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2523
numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2524
    ^ changePositions size
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2525
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2526
    "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
  2527
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2528
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2529
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2530
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2531
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2532
     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
  2533
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  2534
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2535
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2536
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2537
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2538
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2539
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2540
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2541
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2542
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2543
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2544
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2545
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2546
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2547
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2548
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2549
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2550
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2551
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2552
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2553
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2554
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2555
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2556
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2557
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2558
"/        ^ name copyWithoutLast:6
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2559
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2560
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2561
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2562
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2563
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2564
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2565
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2566
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2567
     - 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
  2568
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2569
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2570
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2571
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2572
    name := changeClassNames at:changeNr.
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2573
    name isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2574
	name := self fullClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2575
	name isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2576
	    changeClassNames at:changeNr put:#nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2577
	].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2578
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  2579
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2580
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2581
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2582
    "Modified: / 6.12.1995 / 17:06:31 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2583
    "Created: / 5.11.2001 / 18:09:46 / cg"
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2584
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  2585
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2586
selectorOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2587
    "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
  2588
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2589
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2590
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2591
    changeSelectors size >= changeNr ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2592
	sel := changeSelectors at:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2593
	sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2594
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2595
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2596
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  2597
    sel notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2598
	changeSelectors isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2599
	    changeSelectors := OrderedCollection new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2600
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2601
	changeSelectors grow:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2602
	changeSelectors at:changeNr put:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2603
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2604
    ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2605
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2606
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2607
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2608
    "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
  2609
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2610
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2611
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2612
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2613
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2614
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2615
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2616
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2617
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2618
    ] ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2619
        chunk := (changeChunks at:changeNr).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2620
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2621
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2622
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2623
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2624
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2625
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2626
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2627
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2628
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2629
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2630
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2631
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2632
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2633
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2634
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2635
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2636
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2637
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2638
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2639
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2640
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2641
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2642
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2643
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  2644
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2645
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2646
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2647
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2648
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2649
    "Created: / 5.9.1996 / 17:11:32 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2650
    "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
  2651
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2652
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2653
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2654
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2655
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2656
    |aStream encoding decoder|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2657
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2658
    (changeNr between:1 and:changePositions size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2659
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2660
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2661
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2662
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2663
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2664
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2665
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2666
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2667
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2668
        decoder := CharacterEncoder encoderFor:encodingIfKnown.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2669
        aStream := EncodedStream stream:aStream encoder:decoder.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2670
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  2671
4599
9a95e5ae08ad code rewritten to be independent of stream zero-base
Claus Gittinger <cg@exept.de>
parents: 4497
diff changeset
  2672
    aStream position1Based:(changePositions at:changeNr).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2673
    ^ aStream
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2674
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2675
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2676
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2677
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2678
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2679
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2680
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2681
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  2682
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2683
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2684
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2685
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2686
    "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
  2687
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  2688
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2689
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2690
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2691
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2692
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2693
    (info := f info) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2694
	self newLabel:'(unaccessable)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2695
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2696
	(info modificationTime) > changeFileTimestamp ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2697
	    self newLabel:'(outdated)'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2698
	    autoUpdate value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2699
		self doUpdate
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2700
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2701
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2702
	    self newLabel:''
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  2703
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2704
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2705
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2706
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2707
    "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
  2708
    "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
  2709
    "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
  2710
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2711
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2712
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2713
    "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
  2714
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2715
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2716
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  2717
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2718
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2719
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2720
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2721
    "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
  2722
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2723
     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
  2724
     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
  2725
        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
  2726
                '+' -> 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
  2727
                '-' -> 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
  2728
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2729
                '=' -> 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
  2730
                '~' -> 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
  2731
        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
  2732
        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
  2733
                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
  2734
                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
  2735
                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
  2736
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2737
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2738
     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
  2739
     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
  2740
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2741
    |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
  2742
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2743
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  2744
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2745
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2746
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2747
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2748
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2749
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2750
    (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
  2751
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2752
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  2753
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2754
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  2755
    f exists ifFalse:[^ self].
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2756
    inStream :=  f readStream.
5715
3682c9e4fb0a skip and hide encoding chunk
ca
parents: 5703
diff changeset
  2757
6173
4ba4589e4952 guessEncoding now implemented in CharacterEncoder
Claus Gittinger <cg@exept.de>
parents: 6162
diff changeset
  2758
    encoding := CharacterEncoder guessEncodingOfStream:inStream.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2759
    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
  2760
        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
  2761
        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
  2762
        inStream skipEncodingChunk.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2763
    ].
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  2764
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2765
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  2766
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  2767
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2768
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2769
    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
  2770
        "
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
  2771
         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
  2772
         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
  2773
        "
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
  2774
        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
  2775
            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
  2776
            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
  2777
            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
  2778
            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
  2779
        ].
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
  2780
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
  2781
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2782
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2783
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2784
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  2785
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2786
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2787
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2788
            reader autoCompare:autoCompare.
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  2789
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2790
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2791
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2792
            reader noColoring:(NoColoring == true).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2793
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2794
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2795
            editingClassSource := reader thisIsAClassSource.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2796
            changeChunks := reader changeChunks.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2797
            changeClassNames := reader changeClassNames.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2798
            changeHeaderLines := reader changeHeaderLines.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2799
            changePositions := reader changePositions.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2800
            changeTimeStamps := reader changeTimeStamps.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2801
            changeIsFollowupMethodChange := reader changeIsFollowupMethodChange.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  2802
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  2803
            anyChanges := false.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2804
        ] 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
  2805
            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
  2806
            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
  2807
                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
  2808
                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
  2809
            ].
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
  2810
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2811
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2812
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2813
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2814
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  2815
    "Modified: / 27-08-1995 / 23:06:55 / claus"
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  2816
    "Modified: / 07-02-2012 / 17:36:32 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2817
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2818
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2819
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2820
    "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
  2821
     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
  2822
     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
  2823
     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
  2824
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2825
     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
  2826
     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
  2827
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2828
    |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
  2829
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2830
    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
  2831
        (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
  2832
        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
  2833
            ^ 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
  2834
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2835
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2836
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
  2837
    [
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
  2838
        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
  2839
    ] 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
  2840
        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
  2841
        ^ 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
  2842
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2843
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2844
        tempfile := Filename newTemporaryIn:nil.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2845
        tempfile exists ifTrue:[tempfile remove].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2846
        [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2847
            outStream := tempfile writeStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2848
        ] on:FileStream openErrorSignal do:[:ex|
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2849
            self warn:'Cannot create temp file in current directory.'.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2850
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2851
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2852
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2853
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2854
"/        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2855
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2856
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2857
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2858
        encoding notNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2859
            decoder := CharacterEncoder encoderFor:encoding.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2860
            inStream := EncodedStream stream:inStream encoder:decoder.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2861
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2862
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2863
        self withCursor:(Cursor write) do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2864
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2865
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2866
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2867
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2868
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2869
                tempfile exists ifTrue:[tempfile remove].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2870
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2871
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2872
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2873
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2874
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2875
                1 to:nChanges do:[:index |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2876
                    inStream position1Based:(changePositions at:index).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2877
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2878
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2879
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2880
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2881
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2882
                        (stamp := changeTimeStamps at:index) notNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2883
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2884
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2885
                        ].
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
  2886
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2887
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2888
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2889
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2890
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2891
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2892
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2893
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2894
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2895
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2896
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2897
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2898
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2899
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2900
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2901
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2902
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2903
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2904
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2905
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2906
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2907
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2908
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2909
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2910
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2911
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2912
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2913
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2914
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2915
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2916
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2917
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2918
                    ]
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
  2919
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2920
                outStream syncData; close.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2921
            ].
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
  2922
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2923
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2924
            f := changeFileName asFilename.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2925
            f renameTo:(f withSuffix:'bak').
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2926
            tempfile renameOrCopyTo:changeFileName.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2927
            anyChanges := false
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  2928
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2929
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2930
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2931
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  2932
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2933
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2934
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2935
    "Modified: / 02-12-1996 / 22:29:15 / stefan"
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  2936
    "Modified: / 03-02-2012 / 11:01:20 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2937
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2938
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2939
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2940
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2941
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2942
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2943
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2944
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2945
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2946
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2947
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2948
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2949
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2950
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2951
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2952
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2953
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2954
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2955
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2956
        sawExcla := true.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2957
        chunk := changeChunks at:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2958
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2959
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2960
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2961
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  2962
    chunk withoutSeparators isEmpty ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2963
        self error:'Empty chunk - should not happen' mayProceed:true.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2964
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2965
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2966
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2967
    fileName := aFileNameOrFileNameString asFilename.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2968
    fileName exists ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2969
        encoding := CharacterEncoder guessEncodingOfFile:fileName.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2970
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2971
        encoding := #utf8.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2972
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2973
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2974
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2975
        outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  2976
    ] on:FileStream openErrorSignal do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2977
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2978
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2979
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2980
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2981
    encoding notNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2982
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderFor:encoding).
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2983
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2984
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  2985
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2986
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2987
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2988
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2989
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2990
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2991
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2992
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2993
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2994
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2995
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2996
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  2997
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2998
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  2999
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  3000
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3001
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3002
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  3003
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  3004
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3005
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3006
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3007
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  3008
    "Modified: / 6.2.1998 / 13:03:54 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3009
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3010
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3011
applyChange:changeNr
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3012
    "fileIn a change.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3013
     Answer true, if everything went ok."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3014
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3015
    |aStream applyAction nameSpace className changeClass ownerName ownerClass reader doItChunk methodsForChunk pkg
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3016
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3017
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3018
    aStream := self streamForChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3019
    aStream isNil ifTrue:[^ self].
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3020
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3021
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  3022
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3023
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  3024
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  3025
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  3026
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  3027
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  3028
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3029
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3030
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3031
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  3032
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  3033
            "load unloaded class. Otherwise a class definition change
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  3034
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  3035
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  3036
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3037
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3038
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3039
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3040
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3041
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3042
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3043
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3044
            AbortOperationRequest handle:[:ex |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3045
                "catch the abort of a single apply here.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3046
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3047
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3048
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3049
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3050
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3051
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3052
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3053
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3054
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3055
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3056
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3057
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3058
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3059
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3060
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3061
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3062
                            ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3063
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3064
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3065
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3066
                                    methodsForChunk := (changeChunks at:changeNr).
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3067
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3068
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3069
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3070
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3071
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3072
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3073
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3074
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3075
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3076
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3077
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3078
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3079
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3080
                                        orgClassName := className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3081
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3082
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3083
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3084
                                            (ownerName endsWith:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3085
                                                ownerName := ownerName copyWithoutLast:1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3086
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3087
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3088
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3089
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3090
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3091
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3092
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3093
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3094
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3095
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3096
                                        changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3097
                                            changeClass := Smalltalk at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3098
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3099
                                        [changeClass isNil] whileTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3100
                                            (NameSpace allNameSpaces
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3101
                                                contains:[:ns | (nsClass := (ns at:className)) notNil])
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3102
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3103
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3104
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3105
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3106
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3107
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3108
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3109
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3110
                                            className := Dialog
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3111
                                                            request:'No class ''' , className , ''' for change. Add to which class ?'
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3112
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3113
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3114
                                            className size == 0 ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3115
                                                ^ self
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3116
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3117
                                            alternativeClass := Smalltalk classNamed:className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3118
                                            alternativeClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3119
                                                changeClass := alternativeClass
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3120
                                            ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3121
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3122
                                        methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3123
                                        methodsForChunk := changeClass name , methodsForChunk.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3124
                                    ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3125
                                    reader := Compiler evaluate:methodsForChunk notifying:self.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3126
                                    reader fileInFrom:aStream notifying:self passChunk:false single:true.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3127
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3128
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3129
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3130
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3131
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3132
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3133
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3134
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3135
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3136
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3137
    "/ 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
  3138
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3139
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3140
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3141
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3142
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3143
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3144
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3145
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3146
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3147
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  3148
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  3149
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  3150
    "Modified: / 07-02-2012 / 17:39:48 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3151
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3152
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3153
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3154
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3155
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3156
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3157
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3158
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3159
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3160
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3161
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3162
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3163
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3164
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3165
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3166
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3167
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  3168
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3169
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3170
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3171
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3172
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3173
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3174
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3175
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3176
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3177
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3178
compareChange:changeNr
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3179
    "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
  3180
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3181
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3182
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3183
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3184
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3185
    "compare a change with current version.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3186
     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
  3187
     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
  3188
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3189
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3190
     parser sel oldMethod outcome showDiff d t1 t2 selector isLoaded beep superClass thisClassSym varsHere varsInChange addedVars removedVars
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3191
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3192
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3193
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3194
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3195
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  3196
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  3197
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  3198
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3199
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3200
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3201
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3202
        chunk := (changeChunks at:changeNr).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3203
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3204
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3205
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3206
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3207
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  3208
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3209
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3210
        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
  3211
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3212
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3213
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3214
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3215
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3216
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3217
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3218
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3219
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3220
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3221
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3222
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3223
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3224
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3225
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3226
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3227
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3228
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3229
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3230
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3231
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3232
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3233
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3234
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3235
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3236
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3237
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3238
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3239
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3240
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3241
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3242
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3243
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3244
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3245
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3246
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3247
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3248
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3249
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3250
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3251
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3252
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3253
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3254
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3255
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3256
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3257
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3258
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3259
                        (selector endsWith:':privateIn:') ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3260
                            ownerClass := (parseTree arguments at:5) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3261
                            ownerClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3262
                                thisClass := ownerClass privateClassesAt:thisClassSym.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3263
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3264
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3265
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3266
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3267
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3268
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3269
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3270
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3271
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3272
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3273
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3274
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3275
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3276
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3277
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3278
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3279
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3280
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3281
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3282
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3283
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3284
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3285
                                            ((thisClass sharedPoolNames size == 0) and:[(parseTree arguments at:4) evaluate = '']) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3286
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3287
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3288
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3289
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3290
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3291
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3292
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3293
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3294
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3295
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3296
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3297
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3298
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3299
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  3300
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3301
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3302
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3303
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3304
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3305
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3306
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3307
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3308
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3309
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3310
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3311
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3312
                                        addedVars := varsInChange select:[:eachVar | (varsHere includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3313
                                        removedVars := varsHere select:[:eachVar | (varsInChange includes:eachVar) not].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3314
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3315
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3316
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3317
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3318
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3319
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3320
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3321
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3322
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3323
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3324
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3325
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3326
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3327
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3328
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3329
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3330
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3331
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3332
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3333
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3334
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3335
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3336
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3337
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3338
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3339
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3340
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3341
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3342
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3343
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3344
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3345
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3346
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3347
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3348
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3349
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3350
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3351
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3352
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3353
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3354
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3355
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3356
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3357
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3358
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3359
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3360
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3361
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3362
                thisClass notNil ifTrue:[
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3363
                (thisClass isKindOf:UndefinedVariable) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3364
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3365
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3366
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3367
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3368
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3369
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3370
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3371
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
6820
4e8815b9e661 Do not autoload class when comparing changes.
Stefan Vogel <sv@exept.de>
parents: 6682
diff changeset
  3372
                        owner := Smalltalk loadedClassNamed:ownerName.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3373
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3374
                            self checkClassIsLoaded:owner.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3375
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3376
                    ].
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3377
                    thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3378
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3379
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3380
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3381
                    (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3382
                        outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3383
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3384
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3385
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3386
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3387
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3388
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3389
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3390
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3391
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3392
                            cat := parseTree arg1 evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3393
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3394
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3395
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3396
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3397
                    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3398
                    do:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3399
                        parser := Parser parseMethod:newSource in:thisClass.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3400
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3401
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3402
                        sel := parser selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3403
                        oldMethod := thisClass compiledMethodAt:sel.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3404
                        oldMethod notNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3405
                            (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  3406
"/                                Transcript showCR:'category changed.'.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3407
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3408
                            oldSource := oldMethod source.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3409
                            (oldSource = newSource) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3410
                                outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3411
                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3412
                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3413
                                oldSource isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3414
                                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3415
                                    outcome := 'No source for compare.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3416
                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3417
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3418
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3419
                                    "/ compare for tabulator <-> space changes
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3420
                                    "/ before showing diff ...
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3421
                                    "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3422
                                    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3423
                                    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3424
                                    t1 = t2 ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3425
                                        outcome := 'Same source'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3426
                                        isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3427
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3428
                                        outcome := 'Source changed.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3429
                                        showDiff := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3430
                                        isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3431
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3432
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3433
                                        "/ check if only historyLine diffs
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3434
                                        "/
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3435
                                        (HistoryManager notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3436
                                        and:[HistoryManager isActive]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3437
                                            (HistoryManager withoutHistoryLines:newSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3438
                                            =
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3439
                                            (HistoryManager withoutHistoryLines:oldSource)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3440
                                            ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3441
                                                outcome := 'Same source (history only)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3442
                                                isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3443
                                                showDiff := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3444
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3445
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3446
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3447
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3448
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3449
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3450
                            isLoaded ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3451
                                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3452
                                outcome := 'Method does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3453
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3454
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3455
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3456
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3457
                        outcome := 'Change is unparsable (parse error).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3458
                        isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3459
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3460
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3461
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  3462
                            d := DiffCodeView
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  3463
                                    openOn:oldSource label:(resources string:'Current version (in image)')
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  3464
                                    and:newSource label:(resources string:'Change version').
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3465
                            d label:'method differences'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3466
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3467
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3468
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3469
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3470
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3471
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3472
                ]
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3473
            ]] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3474
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3475
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3476
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3477
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3478
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3479
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3480
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3481
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3482
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3483
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3484
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3485
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3486
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3487
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3488
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3489
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3490
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3491
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3492
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3493
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3494
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3495
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  3496
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3497
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3498
    "Created: / 24-11-1995 / 14:30:46 / cg"
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  3499
    "Modified: / 18-01-2011 / 17:56:04 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3500
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3501
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3502
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3503
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3504
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3505
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3506
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3507
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3508
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3509
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3510
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3511
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3512
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3513
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3514
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3515
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3516
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3517
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3518
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3519
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3520
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3521
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3522
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3523
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3524
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3525
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3526
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3527
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3528
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3529
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3530
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3531
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3532
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3533
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3534
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3535
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3536
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3537
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3538
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3539
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3540
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3541
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3542
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3543
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3544
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3545
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3546
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3547
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3548
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3549
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3550
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3551
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3552
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3553
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3554
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3555
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3556
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3557
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3558
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3559
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3560
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3561
                    ^ false -> ('Package is different (''<1p>'' vs. ''<2p>'')' expandMacrosWith:method package with:parseTree arg1 evaluate).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3562
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3563
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3564
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3565
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3566
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3567
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3568
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3569
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3570
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3571
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3572
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3573
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3574
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3575
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3576
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  3577
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3578
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3579
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3580
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3581
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3582
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3583
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  3584
                ^ true -> ('Change has no effect\\(there is no method for #' , selector , ' in ' , thisClass name , ')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3585
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3586
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3587
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3588
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3589
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3590
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3591
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3592
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3593
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3594
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3595
     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
  3596
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3597
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3598
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3599
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3600
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3601
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3602
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3603
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3604
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3605
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3606
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3607
     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
  3608
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3609
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3610
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3611
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3612
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3613
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3614
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3615
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3616
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3617
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3618
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  3619
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3620
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3621
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3622
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3623
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3624
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3625
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3626
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3627
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3628
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3629
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3630
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3631
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3632
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3633
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3634
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3635
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3636
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3637
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3638
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3639
        str := WriteStream on:String new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3640
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3641
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3642
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3643
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3644
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3645
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3646
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3647
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3648
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3649
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3650
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3651
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3652
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3653
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3654
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3655
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3656
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3657
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3658
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3659
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3660
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3661
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3662
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3663
                aStream position1Based:(changePositions at:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3664
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3665
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3666
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3667
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3668
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3669
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3670
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3671
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3672
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3673
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3674
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3675
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3676
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3677
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3678
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3679
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3680
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3681
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3682
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3683
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3684
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3685
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3686
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3687
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3688
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3689
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3690
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3691
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3692
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3693
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3694
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3695
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3696
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3697
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3698
                                ]
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3699
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3700
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3701
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3702
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3703
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3704
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3705
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3706
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3707
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3708
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3709
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3710
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3711
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3712
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3713
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3714
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3715
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3716
                                types at:changeNr put:#removeSelector
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3717
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3718
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3719
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  3720
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3721
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3722
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3723
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3724
                            (chunk startsWith:snapshotPrefix) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3725
                                str := chunk readStream position1Based:snapshotNameIndex.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3726
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3727
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3728
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3729
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3730
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3731
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3732
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3733
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3734
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3735
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3736
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3737
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3738
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3739
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3740
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3741
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3742
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3743
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3744
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3745
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3746
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3747
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3748
         in the list and, if there is one, add change number to the delete set"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3749
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3750
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3751
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3752
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3753
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3754
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3755
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3756
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3757
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3758
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3759
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3760
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3761
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3762
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3763
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3764
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3765
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3766
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3767
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3768
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3769
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3770
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3771
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3772
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3773
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3774
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3775
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3776
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3777
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3778
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3779
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3780
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3781
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3782
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3783
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3784
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3785
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3786
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3787
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3788
        (deleteSet size > 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3789
            changeListView setSelection:nil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3790
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3791
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3792
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3793
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3794
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3795
            self setChangeList.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3796
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3797
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3798
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3799
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3800
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3801
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3802
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3803
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3804
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3805
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3806
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3807
    "Created: / 19-11-2001 / 22:03:42 / cg"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  3808
    "Modified: / 13-11-2006 / 11:00:03 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3809
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  3810
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3811
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3812
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3813
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3814
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3815
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3816
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3817
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3818
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3819
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3820
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3821
    stop to:start by:-1 do:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3822
	self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3823
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  3824
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3825
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3826
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3827
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3828
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3829
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  3830
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  3831
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3832
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  3833
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3834
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3835
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3836
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3837
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3838
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3839
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3840
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3841
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3842
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3843
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3844
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3845
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3846
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3847
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3848
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3849
    anyChanges := true.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  3850
    changeChunks removeIndex:changeNr.
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3851
    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3852
    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3853
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3854
    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3855
    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3856
    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3857
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  3858
    "Modified: 18.11.1995 / 17:08:44 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3859
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3860
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3861
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
  3862
    "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
  3863
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3864
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3865
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3866
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3867
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3868
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3869
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3870
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3871
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3872
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3873
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3874
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3875
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3876
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  3877
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3878
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3879
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  3880
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3881
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3882
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3883
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3884
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3885
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3886
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3887
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3888
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3889
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3890
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3891
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3892
	    (self selectorOfMethodChange:index) == selector ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3893
		self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3894
		numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3895
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3896
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3897
	index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3898
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3899
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3900
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  3901
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3902
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3903
    "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
  3904
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3905
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3906
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3907
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3908
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3909
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3910
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3911
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3912
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3913
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3914
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3915
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3916
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3917
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3918
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3919
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3920
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  3921
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3922
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3923
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3924
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3925
    anyChanges := true.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  3926
    changeChunks removeIndex:changeNr.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3927
    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3928
    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  3929
    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3930
    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3931
    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3932
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3933
    "Created: / 7.3.1997 / 16:28:32 / cg"
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  3934
    "Modified: / 7.2.1998 / 19:59:11 / cg"
1496
978b3c3565c9 #silentDeleteInternalChange: copy-paste error
Stefan Vogel <sv@exept.de>
parents: 1473
diff changeset
  3935
    "Modified: / 26.2.1998 / 18:20:48 / stefan"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3936
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3937
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3938
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3939
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3940
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3941
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3942
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3943
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3944
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3945
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3946
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3947
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3948
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  3949
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3950
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3951
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3952
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3953
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  3954
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3955
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3956
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3957
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3958
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3959
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3960
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3961
    ] ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3962
        chunk := (changeChunks at:changeNr).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3963
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3964
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  3965
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3966
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3967
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3968
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3969
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3970
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3971
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3972
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3973
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3974
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3975
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3976
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3977
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3978
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3979
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3980
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3981
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3982
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3983
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3984
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  3985
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3986
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3987
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3988
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3989
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3990
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3991
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3992
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3993
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3994
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  3995
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3996
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3997
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3998
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  3999
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4000
                        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
  4001
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4002
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4003
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  4004
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4005
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4006
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4007
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4008
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4009
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4010
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4011
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4012
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4013
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4014
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4015
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4016
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4017
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4018
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4019
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4020
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4021
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  4022
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4023
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4024
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4025
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4026
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4027
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4028
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4029
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4030
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4031
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4032
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4033
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4034
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4035
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4036
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4037
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4038
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4039
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4040
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4041
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4042
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4043
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4044
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4045
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4046
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4047
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4048
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4049
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4050
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4051
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4052
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4053
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4054
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4055
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4056
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4057
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4058
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4059
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4060
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4061
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4062
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4063
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4064
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4065
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4066
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4067
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4068
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4069
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4070
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4071
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4072
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4073
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4074
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4075
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4076
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4077
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4078
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4079
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4080
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4081
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4082
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4083
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4084
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4085
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4086
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4087
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4088
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4089
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4090
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4091
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4092
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4093
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4094
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4095
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4096
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4097
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4098
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4099
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4100
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  4101
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4102
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4103
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4104
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4105
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4106
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  4107
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  4108
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4109
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  4110
    "Created: / 24-11-1995 / 14:30:46 / cg"
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  4111
    "Modified: / 05-03-2012 / 14:33:16 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4112
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4113
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4114
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4115
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4116
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4117
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4118
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4119
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4120
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4121
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4122
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4123
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4124
                          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
  4125
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4126
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4127
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4128
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4129
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4130
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4131
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4132
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4133
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4134
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4135
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4136
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4137
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4138
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4139
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4140
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4141
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4142
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4143
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4144
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4145
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4146
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4147
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4148
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4149
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4150
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  4151
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4152
    anyChanges ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4153
	self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4154
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4155
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4156
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  4157
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4158
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4159
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4160
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4161
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4162
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4163
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4164
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4165
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4166
	askForSearchString:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4167
	initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4168
	directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4169
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4170
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4171
	^ cancelBlock value
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4172
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4173
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4174
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4175
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4176
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4177
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4178
	    changeNrShown := self numberOfChanges.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4179
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4180
	self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4181
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4182
	changeNrShown isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4183
	    changeNrShown := 0.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4184
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4185
	self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4186
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4187
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4188
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4189
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4190
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4191
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4192
    |searchString direction|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4193
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4194
    direction := #forward.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4195
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4196
    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4197
	|box nextButton prevButton|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4198
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4199
	box := ex parameter.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4200
	nextButton := box okButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4201
	prevButton := Button label:(resources string:'Previous').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4202
	prevButton action:[direction := #backward. box okPressed.].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4203
	box addButton:prevButton after:nextButton.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4204
	nextButton label:(resources string:'Next').
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4205
	ex proceed.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4206
    ] do:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4207
	searchString := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4208
		request:msg
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4209
		initialAnswer:initial
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4210
		onCancel:nil.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4211
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4212
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4213
    searchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4214
	^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4215
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4216
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4217
    ^ searchString
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4218
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  4219
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4220
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4221
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4222
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4223
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4224
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4225
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4226
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4227
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  4228
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4229
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4230
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4231
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4232
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4233
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  4234
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4235
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4236
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4237
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4238
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4239
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4240
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4241
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4242
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4243
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4244
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4245
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4246
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4247
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4248
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4249
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4250
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4251
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4252
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4253
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4254
    self changeListSelectionHolder value:lineNumbers.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4255
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4256
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4257
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4258
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4259
        changeNrShown := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4260
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4261
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  4262
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4263
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  4264
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  4265
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4266
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4267
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  4268
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4269
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4270
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  4271
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  4272
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4273
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4274
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4275
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4276
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4277
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4278
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4279
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4280
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4281
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4282
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4283
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4284
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4285
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4286
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4287
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4288
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  4289
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  4290
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4291
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4292
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4293
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4294
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4295
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  4296
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4297
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4298
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  4299
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  4300
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4301
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4302
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4303
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4304
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4305
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4306
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4307
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4308
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4309
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4310
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4311
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4312
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4313
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4314
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4315
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4316
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  4317
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4318
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4319
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4320
classOfChange:changeNr ifAbsent:exceptionBlock
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4321
    "answer the class that is subject to the chamge at changeNr.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4322
     The classes owning class may be autoloaded, if autoloadAsRequired is true."
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4323
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4324
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4325
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4326
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4327
    className isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4328
        ^ exceptionBlock value:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4329
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4330
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4331
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4332
    (className endsWith:' class') ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4333
        className := className copyWithoutLast:6.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4334
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4335
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4336
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4337
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4338
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4339
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4340
            1 to:path size-1 do:[:l |
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4341
                "/ ensure that the owningClass is loaded - this will load the private classes as well
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4342
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4343
                ownerName := (path copyTo:l) asStringCollection asStringWith:'::'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4344
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4345
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4346
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4347
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  4348
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4349
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4350
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  4351
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4352
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4353
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4354
        cls := nameSpaceForApply classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4355
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4356
        cls := nameSpaceForApply loadedClassNamed:className
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4357
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4358
    (cls isNil and:[nameSpaceForApply ~~ Smalltalk]) ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4359
        "if not found in special name space, fall back to the Smalltalk name space"
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4360
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4361
            cls := Smalltalk classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4362
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4363
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4364
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4365
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  4366
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4367
    cls isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4368
        ^ exceptionBlock value:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4369
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4370
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4371
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4372
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4373
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4374
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4375
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4376
doApply
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4377
    "user wants a change to be applied"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4378
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4379
    self withSelectedChangesDo:[:changeNr |
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4380
        (self applyChange:changeNr) ifFalse:[
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4381
            ^ self "/ cancel
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4382
        ].
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  4383
        self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4384
    ]
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4385
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4386
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4387
doApplyAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4388
    "user wants all changes to be applied"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4389
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  4390
    self withExecuteCursorDo:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4391
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4392
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4393
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4394
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4395
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4396
        "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4397
         ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4398
        multipleApply := lastNr > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4399
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4400
        1 to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4401
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4402
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4403
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4404
        self autoSelectLast
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4405
    ]
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  4406
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4407
    "Modified: 21.1.1997 / 22:26:30 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4408
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4409
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4410
doApplyClassFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4411
    "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
  4412
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4413
    self withSingleSelectedChangeDo:[:changeNr |
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4414
        |thisClassName classNameToApply lastChange
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4415
         lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4416
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4417
        classNameToApply := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4418
        classNameToApply notNil ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4419
            self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4420
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4421
            "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4422
             ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4423
            multipleApply := changeNr ~= 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4424
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4425
            1 to:changeNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4426
                thisClassName := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4427
                thisClassName = classNameToApply ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4428
                    changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4429
                    self applyChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4430
                    lastChange := changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4431
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4432
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4433
            self autoSelect:changeNr+1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4434
        ]
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4435
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4436
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4437
    "Modified: 21.1.1997 / 22:26:04 / cg"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4438
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4439
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4440
doApplyClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4441
    "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
  4442
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4443
    self withSingleSelectedChangeDo:[:changeNr |
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4444
        |thisClassName classNameToApply lastChange
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4445
         lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4446
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4447
        classNameToApply := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4448
        classNameToApply notNil ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4449
            self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4450
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4451
            lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4452
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4453
            "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4454
             ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4455
            multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4456
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4457
            changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4458
                thisClassName := self classNameOfChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4459
                thisClassName = classNameToApply ifTrue:[
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4460
                    changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4461
                    self applyChange:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4462
                    lastChange := changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4463
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4464
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4465
            self autoSelect:lastChange.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4466
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4467
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4468
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4469
    "Modified: 21.1.1997 / 22:26:04 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4470
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4471
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4472
doApplyFromBeginning
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4473
    "user wants all changes from 1 to changeNr to be applied"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4474
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4475
    self withSingleSelectedChangeDo:[:changeNr |
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4476
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4477
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4478
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4479
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4480
        "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4481
         ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4482
        multipleApply := changeNr ~= 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4483
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4484
        1 to:changeNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4485
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4486
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4487
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4488
        self autoSelect:changeNr+1.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4489
    ]
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4490
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4491
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4492
doApplyRest
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4493
    "apply all changes from changeNr to the end"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  4494
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4495
    self withSingleSelectedChangeDo:[:changeNr |
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4496
        |lastNr "{ Class: SmallInteger }" |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4497
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4498
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4499
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4500
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4501
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4502
        "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4503
         ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4504
        multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4505
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4506
        changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4507
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4508
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4509
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4510
        self autoSelect:self numberOfChanges.
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4511
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4512
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  4513
    "Modified: 21.1.1997 / 22:25:29 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4514
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4515
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4516
doApplyToConflictOrEnd
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4517
    "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
  4518
     or the end."
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4519
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4520
    self withSingleSelectedChangeDo:[:changeNr |
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4521
        |lastNr "{ Class: SmallInteger }"|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4522
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4523
        self clearCodeView.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4524
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4525
        lastNr := self numberOfChanges.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4526
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4527
        "if we apply multiple changes, and an error occurs,
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4528
         ask the user if all operations should be aborted..."
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4529
        multipleApply := (lastNr - changeNr) > 1.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4530
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4531
        changeNr to:lastNr do:[:changeNr |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4532
            | cls sel |
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4533
            changeListView setSelection:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4534
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4535
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4536
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4537
            ifTrue:[
9006
4c53a23241d2 changed: #doApplyToConflictOrEnd
Claus Gittinger <cg@exept.de>
parents: 8985
diff changeset
  4538
                (cls includesSelector:sel) ifTrue:[
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4539
                    self autoSelect:changeNr.
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4540
                    ^ self
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4541
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4542
            ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4543
            self applyChange:changeNr
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4544
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4545
        self autoSelect:self numberOfChanges.
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4546
    ]
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4547
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  4548
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4549
doBrowse
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4550
    "user wants a browser on the class of a change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4551
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4552
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4553
	|cls|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4554
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4555
	cls := self classOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4556
	cls notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4557
	    UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4558
		openInClass:cls
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4559
		selector:(self selectorOfMethodChange:changeNr)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4560
	]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4561
    ]
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4562
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4563
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4564
doBrowseImplementors
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4565
    "open an implementors-browser"
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4566
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4567
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4568
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4569
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4570
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4571
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4572
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4573
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4574
		    request:'Selector to browse implementors of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4575
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4576
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4577
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4578
	    browseImplementorsMatching:selector.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4579
    ]
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4580
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4581
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4582
doBrowseSenders
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4583
    "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
  4584
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4585
    |changeNr initial selector|
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4586
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4587
    (changeNr := self theSingleSelection) notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4588
	initial := self selectorOfMethodChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4589
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4590
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4591
    selector := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4592
		    request:'Selector to browse senders of:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4593
		    initialAnswer:(initial ? '').
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4594
    selector size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4595
	UserPreferences systemBrowserClass
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4596
	    browseAllCallsOn:selector asSymbol.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  4597
    ]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4598
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  4599
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4600
doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4601
    "first checkin the selected changes class then delete all changes
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4602
     for it."
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4603
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4604
    |classes answer logTitle checkinInfo|
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4605
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4606
"/    self theSingleSelection isNil ifTrue:[
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4607
"/        ^ self information:'Only possible if a single change is selected.'.
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4608
"/    ].
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4609
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4610
    self withExecuteCursorDo:[
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4611
        classes := IdentitySet new.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4612
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4613
        self withSelectedChangesDo:[:changeNr |
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4614
            | className class |
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4615
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4616
            className := self classNameOfChange:changeNr.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4617
            className notNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4618
                class := Smalltalk classNamed:className.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4619
                class isNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4620
                    self error:'oops - no class: ', className mayProceed:true.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4621
                ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4622
                class notNil ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4623
                    class := class theNonMetaclass.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4624
                    (classes includes:class) ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4625
                        class isPrivate ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4626
                            (classes includes:class owningClass) ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4627
                                answer := self confirmWithCancel:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?'
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4628
                                                                    bindWith:class owningClass name allBold) withCRs.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4629
                                answer isNil ifTrue:[^ self].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4630
                                answer ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4631
                                    classes add:class owningClass
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4632
                                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4633
                            ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4634
                        ] ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4635
                            classes add:class
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4636
                        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4637
                    ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4638
                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4639
            ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4640
        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4641
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4642
        classes size == 1 ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4643
            logTitle := classes first name.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4644
        ] ifFalse:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4645
            logTitle := '%1 classes' bindWith:classes size.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4646
        ].
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  4647
        checkinInfo := SourceCodeManagerUtilities default
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4648
                        getCheckinInfoFor:logTitle
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4649
                        initialAnswer:nil.
6977
784155153e91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6843
diff changeset
  4650
        checkinInfo isNil ifTrue:[^ self ].
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4651
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4652
        changeListView setSelection:nil.
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4653
        classes do:[:eachClass |
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  4654
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
6605
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4655
                ifTrue:[
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4656
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4657
                           from:1 to:(self numberOfChanges).
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4658
                ]
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4659
        ].
255a3095ad5d Setting/deleting symbolic names
Stefan Vogel <sv@exept.de>
parents: 6532
diff changeset
  4660
        self setChangeList.
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4661
    ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4662
3442
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4663
    "Modified: / 6.9.1995 / 17:11:16 / claus"
38a5ec1d3add *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3436
diff changeset
  4664
    "Modified: / 17.11.2001 / 14:21:13 / cg"
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4665
!
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  4666
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4667
doCompare
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4668
    "compare change with current system version"
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4669
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4670
    classesNotToBeAutoloaded removeAll.
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4671
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4672
    self withSingleSelectedChangeDo:[:changeNr |
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4673
        self withExecuteCursorDo:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4674
            self compareChange:changeNr
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4675
        ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4676
        self newLabel:''
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4677
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4678
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  4679
    "Modified: 24.2.1996 / 19:37:19 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4680
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4681
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4682
doCompareAndCompress
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4683
    "remove all changes, which are equivalent to the current image version"
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4684
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4685
    |toDelete|
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4686
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4687
    classesNotToBeAutoloaded removeAll.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4688
    toDelete := OrderedCollection new.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4689
    self withExecuteCursorDo:[
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4690
        1 to:self numberOfChanges do:[:changeNr |
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4691
            (self compareChange:changeNr showResult:false) == true ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4692
                toDelete add:changeNr
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4693
            ]
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4694
        ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4695
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4696
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4697
    toDelete reverseDo:[:changeNr |
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4698
        self silentDeleteChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4699
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4700
    self setChangeList.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4701
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4702
     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
  4703
    "
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4704
    changeListView firstLineShown > self numberOfChanges ifTrue:[
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4705
        changeListView makeLineVisible:self numberOfChanges
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4706
    ].
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4707
    self clearCodeView.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4708
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4709
    self newLabel:''.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  4710
    classesNotToBeAutoloaded removeAll.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4711
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4712
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4713
doCompress
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4714
    "compress the change-set; this replaces multiple method-changes by the last
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4715
     (i.e. the most recent) change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4716
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4717
    self compressForClass:nil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4718
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4719
    "Modified: / 29.10.1997 / 01:03:26 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4720
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4721
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4722
doCompressClass
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4723
    "compress changes for the selected class.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4724
     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
  4725
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4726
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4727
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4728
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4729
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4730
    self selectedClassNames do:[:classNameToCompress |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4731
	self compressForClass:classNameToCompress.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4732
    ]
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4733
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4734
    "Created: / 29.10.1997 / 01:05:16 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4735
    "Modified: / 19.11.2001 / 21:55:17 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4736
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4737
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4738
doCompressSelector
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4739
    "compress changes for the selected class & selector.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4740
     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
  4741
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4742
    |classSelectorPairs|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4743
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4744
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4745
	^ 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
  4746
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4747
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4748
    classSelectorPairs := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4749
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4750
	| classNameToCompress selector |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4751
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4752
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4753
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4754
	    selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4755
	    selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4756
		classSelectorPairs add:(classNameToCompress -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4757
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4758
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4759
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4760
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4761
    classSelectorPairs do:[:pair |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4762
	self compressForClass:pair key selector:pair value.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4763
    ]
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  4764
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4765
    "Created: / 19.11.2001 / 21:50:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  4766
    "Modified: / 19.11.2001 / 22:10:08 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4767
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4768
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4769
doDelete
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4770
    "delete currently selected change(s)"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4771
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4772
    |rangeEnd rangeStart firstDeleted|
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4773
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4774
    changeListView selection size <= 5 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4775
	self withSelectedChangesReverseDo:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4776
	    self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4777
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4778
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4779
	^ self
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4780
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4781
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4782
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4783
	rangeEnd isNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4784
	    rangeEnd := rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4785
	] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4786
	    (changeNr = (rangeEnd + 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4787
		rangeEnd := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4788
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4789
		(changeNr = (rangeStart - 1)) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4790
		    rangeStart := changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4791
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4792
		    self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4793
		    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4794
		    rangeStart := rangeEnd := nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4795
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4796
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4797
	].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4798
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4799
    rangeStart notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4800
	self deleteChangesFrom:rangeStart to:rangeEnd.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4801
	firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4802
    ].
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  4803
    self autoSelectOrEnd:firstDeleted
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4804
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4805
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4806
doDeleteAndSelectPrevious
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4807
    "delete currently selected change(s)"
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4808
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4809
    self withSelectedChangesReverseDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4810
	self deleteChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4811
	self autoSelectOrEnd:changeNr-1
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4812
    ]
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4813
!
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  4814
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4815
doDeleteClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4816
    "delete all changes with same class as currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4817
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4818
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4819
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4820
    lastChangeNr := -1.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4821
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4822
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4823
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4824
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4825
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4826
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4827
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4828
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4829
	lastChangeNr := lastChangeNr max:changeNr.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4830
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4831
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4832
    overAllNumDeletedBefore := 0.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4833
    changeListView setSelection:nil.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4834
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4835
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4836
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4837
	    |numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4838
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4839
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4840
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4841
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4842
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4843
				   silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4844
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4845
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4846
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4847
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4848
	].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4849
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4850
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4851
    self setChangeList.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  4852
    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
  4853
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4854
    "Created: / 13.12.1995 / 16:07:14 / cg"
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  4855
    "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
  4856
!
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4857
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4858
doDeleteClassAndPrivateClassesAll
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4859
    "delete all changes with same class and private classes
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4860
     as currently selected change"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4861
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4862
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4863
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4864
    lastChangeNr := -1.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4865
    classNamesToDelete := Set new.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4866
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4867
	|classNameToDelete|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4868
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4869
	classNameToDelete := self ownerClassNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4870
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4871
	    classNamesToDelete add:classNameToDelete.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4872
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4873
	lastChangeNr := lastChangeNr max:changeNr.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4874
    ].
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4875
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4876
    overAllNumDeletedBefore := 0.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4877
    changeListView setSelection:nil.
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4878
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4879
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4880
	classNamesToDelete do:[:classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4881
	    | changeNr numDeletedBefore|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4882
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4883
	    classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4884
		changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4885
		self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4886
				       from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4887
					 to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4888
		numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4889
				       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4890
				       from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4891
				       to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4892
		lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4893
		overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4894
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4895
	]
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4896
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4897
    self setChangeList.
6200
e18d4784b5a0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6174
diff changeset
  4898
    self autoSelectOrEnd:lastChangeNr
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4899
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4900
    "Created: / 13.12.1995 / 16:07:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4901
    "Modified: / 28.1.1998 / 20:42:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4902
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4903
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4904
doDeleteClassFromBeginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4905
    "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
  4906
     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
  4907
     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
  4908
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4909
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4910
	|classNameToDelete prevSelection numDeleted|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4911
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4912
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4913
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4914
	    prevSelection := changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4915
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4916
	    numDeleted := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4917
				silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4918
				from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4919
				to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4920
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4921
	    self autoSelectOrEnd:(changeNr + 1 - numDeleted)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4922
	]
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  4923
    ].
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4924
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  4925
    "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
  4926
    "Modified: 25.5.1996 / 12:26:34 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4927
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4928
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4929
doDeleteClassRest
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4930
    "delete rest of changes with same class as currently selected change"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4931
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4932
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4933
	| classNameToDelete |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4934
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4935
	classNameToDelete := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4936
	classNameToDelete notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4937
	    changeListView setSelection:nil.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4938
	    self silentDeleteChangesFor:classNameToDelete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4939
				   from:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4940
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4941
	    self setChangeList.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4942
	    self autoSelectOrEnd:changeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4943
	]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4944
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  4945
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  4946
    "Modified: / 18.5.1998 / 14:25:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4947
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4948
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4949
doDeleteClassSelectorAll
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4950
    "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
  4951
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4952
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4953
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4954
    lastChangeNr := -1.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4955
    classNameSelectorPairsToDelete := Set new.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4956
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4957
	|className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4958
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4959
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4960
	selector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4961
	selector notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4962
	    (className notNil and:[selector notNil]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4963
		classNameSelectorPairsToDelete add:(className -> selector).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4964
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4965
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4966
	lastChangeNr := lastChangeNr max:changeNr.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4967
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4968
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4969
    overAllNumDeletedBefore := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4970
    changeListView setSelection:nil.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4971
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4972
    self withExecuteCursorDo:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4973
	classNameSelectorPairsToDelete do:[:pair |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4974
	    |numDeletedBefore className selector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4975
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4976
	    className := pair key.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4977
	    selector  := pair value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4978
	    self silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4979
				   from:lastChangeNr
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4980
				     to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4981
	    numDeletedBefore := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4982
				   silentDeleteChangesFor:className selector:selector
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4983
				   from:1
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4984
				   to:(lastChangeNr-1).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4985
	    lastChangeNr := lastChangeNr - numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4986
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4987
	].
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4988
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4989
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4990
    self setChangeList.
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4991
    self autoSelectOrEnd:lastChangeNr
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4992
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4993
    "Created: / 13.12.1995 / 16:07:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4994
    "Modified: / 28.1.1998 / 20:42:14 / cg"
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4995
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  4996
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4997
doDeleteFromBeginning
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4998
    "delete all changes from 1 to the current"
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  4999
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  5000
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5001
	self deleteChangesFrom:1 to:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5002
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5003
	self autoSelectOrEnd:changeNr
4896
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  5004
    ]
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  5005
!
37ac286660fc +delete from beginning
Claus Gittinger <cg@exept.de>
parents: 4877
diff changeset
  5006
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5007
doDeleteRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5008
    "delete all changes from current to the end"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5009
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  5010
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5011
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5012
	self clearCodeView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5013
	self autoSelectOrEnd:changeNr-1
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  5014
    ]
132
claus
parents: 126
diff changeset
  5015
!
claus
parents: 126
diff changeset
  5016
claus
parents: 126
diff changeset
  5017
doFileoutAndDeleteClassAll
claus
parents: 126
diff changeset
  5018
    "first fileOut the selected changes class then delete all changes
claus
parents: 126
diff changeset
  5019
     for it."
claus
parents: 126
diff changeset
  5020
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  5021
    self withSingleSelectedChangeDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5022
	| className class |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5023
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5024
	className := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5025
	className notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5026
	    class := Smalltalk classNamed:className.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5027
	    class notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5028
		Class fileOutErrorSignal handle:[:ex |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5029
		    self warn:('fileout failed: ' , ex description).
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5030
		] do:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5031
		    class fileOut.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5032
		    self doDeleteClassAll
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5033
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5034
	    ].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5035
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5036
	].
132
claus
parents: 126
diff changeset
  5037
    ]
claus
parents: 126
diff changeset
  5038
claus
parents: 126
diff changeset
  5039
    "Modified: 6.9.1995 / 17:11:16 / claus"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5040
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5041
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5042
doMakePatch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5043
    "user wants a change to be made a patch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5044
     - copy it over to the patches file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5045
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5046
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5047
	self makeChangeAPatch:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5048
	self autoSelect:(changeNr + 1)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5049
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5050
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5051
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5052
doMakePermanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5053
    "user wants a change to be made permanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5054
     - rewrite the source file where this change has to go"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5055
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5056
    |yesNoBox|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5057
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5058
    (self theSingleSelection) isNil ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5059
        ^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5060
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5061
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5062
    yesNoBox := YesNoBox new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5063
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5064
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5065
    yesNoBox okAction:[   |changeNr|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5066
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5067
                          changeNr := self theSingleSelection.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5068
                          changeNr notNil ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5069
                              self makeChangePermanent:changeNr.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5070
                              self autoSelect:(changeNr + 1)
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5071
                          ]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5072
                      ].
917
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  5073
    yesNoBox showAtPointer.
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  5074
    yesNoBox destroy
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  5075
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  5076
    "Modified: 7.1.1997 / 23:03:33 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5077
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5078
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5079
doSave
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5080
    "user wants a change to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5081
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5082
    |fileName|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5083
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5084
    self withSelectedChangesDo:[:changeNr |
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5085
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5086
                        requestFileNameForSave:(resources string:'Append change to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5087
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5088
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5089
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5090
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5091
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5092
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5093
            lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5094
            self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5095
                self appendChange:changeNr toFile:fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5096
            ].
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5097
            self autoSelect:(changeNr + 1)
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5098
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5099
    ]
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5100
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5101
    "Modified: / 27-10-2010 / 11:30:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5102
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5103
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5104
doSaveClass
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5105
    "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
  5106
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5107
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5108
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5109
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5110
    self doSaveClassFrom:1
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5111
!
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  5112
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5113
doSaveClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5114
    "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
  5115
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5116
    (self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5117
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5118
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5119
    self doSaveClassFrom:1
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5120
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5121
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5122
doSaveClassFrom:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5123
    "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
  5124
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5125
    |changeNr classNameToSave|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5126
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5127
    (changeNr := self theSingleSelection) isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5128
	^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5129
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5130
    classNameToSave := self classNameOfChange:changeNr.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5131
    classNameToSave notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5132
	self saveClass:classNameToSave from:startNr
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5133
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5134
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5135
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5136
doSaveClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5137
    "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
  5138
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5139
    |changeNr|
132
claus
parents: 126
diff changeset
  5140
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5141
    (changeNr := self theSingleSelection) isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5142
        ^ self information:'Only possible if a single change is selected.'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5143
    ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5144
    self doSaveClassFrom:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5145
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5146
    changeListView setSelection:changeNr.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5147
    "/ self changeSelection:changeNr.
81
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  5148
!
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  5149
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5150
doSaveRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5151
    "user wants changes from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5152
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5153
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5154
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5155
    (changeNr := self theSingleSelection) isNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5156
        ^ self information:(resources string:'Only possible if a single change is selected.').
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5157
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5158
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5159
    fileName := Dialog
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5160
                    requestFileNameForSave:(resources string:'Append changes to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5161
                    default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5162
                    ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5163
                    abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5164
                    pattern:'*.chg'.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5165
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5166
    fileName notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5167
        lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5168
        self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5169
            changeNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5170
                changeListView setSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5171
                (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5172
                    ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5173
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5174
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5175
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5176
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5177
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5178
    "Modified: / 27-10-2010 / 11:30:37 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5179
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5180
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5181
doUpdate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5182
    "reread the changes-file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5183
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5184
    self readChangesFileInBackground:true.
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  5185
    self newLabel:''.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5186
    realized ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5187
	self setChangeList.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5188
    ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5189
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5190
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5191
doWriteBack
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5192
    "write back the list onto the changes file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5193
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5194
    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
  5195
        (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
  5196
            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
  5197
                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
  5198
                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
  5199
                    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
  5200
                ]
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
  5201
            ]
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
  5202
        ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5203
    ]
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5204
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5205
    "Modified: 5.9.1996 / 17:19:46 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5206
!
126
claus
parents: 123
diff changeset
  5207
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5208
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5209
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5210
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5211
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5212
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5213
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5214
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5215
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5216
findClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5217
    "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
  5218
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5219
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5220
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5221
    changeNrShown notNil ifTrue:[
8985
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5222
        current := self classNameOfChange:changeNrShown.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5223
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5224
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5225
    self
8985
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5226
        askForSearch:'Class to search for:'
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5227
        initialAnswer:current
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5228
        thenSearchUsing:[:searchString :changeNr |
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5229
                            |thisClassName|
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5230
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5231
                            thisClassName := self classNameOfChange:changeNr.
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5232
                            thisClassName notNil
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5233
                            and:[
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5234
                                (thisClassName sameAs: searchString)
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5235
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName ignoreCase:true]]]
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5236
                        ]
b49f1d977af6 changed: #findClass
Claus Gittinger <cg@exept.de>
parents: 8978
diff changeset
  5237
        onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5238
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5239
    lastSearchType := #class.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5240
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5241
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5242
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5243
findFirstForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5244
    "findNextForClass menu action: select the next change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5245
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5246
    self findNextForClassStartingAt:1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5247
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5248
    "Created: / 20-11-2006 / 16:37:56 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5249
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5250
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5251
findLastForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5252
    "findPreviousForClass menu action: select the previous change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5253
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5254
    self findPreviousForClassStartingAt:(self numberOfChanges)
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5255
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5256
    "Created: / 20-11-2006 / 16:39:15 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5257
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5258
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5259
findLastSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5260
    "findLastSnapshot menu action: select the last change which is for a snapShot-image save action"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5261
7363
c99ccc9d618c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7360
diff changeset
  5262
    "/ lastSearchType := #snapshot.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5263
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5264
    self 
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5265
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5266
        startingAt:(self numberOfChanges)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5267
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5268
    "Created: / 06-10-2006 / 11:03:39 / cg"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5269
!
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5270
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5271
findNext
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5272
    "findNext menu action: select the next change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5273
     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
  5274
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5275
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5276
	^ self findNextForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5277
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5278
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5279
	^ self findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5280
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5281
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5282
	^ self findNextForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5283
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5284
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5285
	^ self findNextDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5286
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5287
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5288
    ^ self findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5289
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5290
    "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
  5291
    "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
  5292
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5293
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5294
findNextDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5295
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5296
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5297
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5298
    self findNextForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5299
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5300
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5301
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5302
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5303
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5304
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5305
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5306
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5307
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5308
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5309
findNextForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5310
    "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
  5311
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5312
    self findNextForClassStartingAt: changeNrShown + 1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5313
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5314
    "Modified: / 20-11-2006 / 16:37:49 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5315
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5316
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5317
findNextForClassStartingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5318
    "findNextForClass menu action: select the next change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5319
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5320
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5321
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5322
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5323
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5324
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5325
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5326
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5327
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5328
    self 
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5329
        findNextForWhich:[:changeNr |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5330
                |thisClass|
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5331
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5332
                thisClass := self classNameOfChange:changeNr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5333
                (thisClass = cls
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5334
                or:[cls includesMatchCharacters and:[cls match:thisClass]])]
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5335
        startingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5336
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5337
    "Created: / 20-11-2006 / 16:37:37 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5338
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5339
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5340
findNextForSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5341
    "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
  5342
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5343
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5344
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5345
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5346
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5347
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5348
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5349
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5350
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5351
    self findNextForWhich: [:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5352
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5353
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5354
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5355
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5356
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5357
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5358
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5359
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5360
findNextForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5361
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5362
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5363
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5364
    self findNextWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5365
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5366
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5367
findNextForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5368
    "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
  5369
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5370
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5371
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5372
    "Modified: / 20-11-2006 / 16:34:23 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5373
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5374
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5375
findNextForWhich:aBlock startingAt:changeNrToStartSearch
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5376
    "helper: select the next change for which aBlock evaluates to true"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5377
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5378
    ^ self     
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5379
        findNextOrPrevious:#next 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5380
        forWhich:aBlock startingAt:changeNrToStartSearch
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5381
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5382
    "Created: / 20-11-2006 / 16:34:06 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5383
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5384
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5385
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5386
    "helper: find and select the next or previous change for which aBlock evaluates to true"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5387
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5388
    self withCursor:Cursor questionMark do:[
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5389
        Object userInterruptSignal handle:[:ex |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5390
            self beep.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5391
            ^ 0
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5392
        ] do:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5393
            |increment nr lastNr|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5394
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5395
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5396
            lastNr := self numberOfChanges.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5397
            nr := changeNrToStartSearch.
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5398
            [ (direction == #previous and:[nr >= 1])
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5399
              or:[ direction == #next and:[ nr <= lastNr]] 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5400
            ] whileTrue:[
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5401
                (aBlock value:nr) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5402
                    changeListView setSelection:nr.
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5403
                    self changeSelection:nr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5404
                    ^ nr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5405
                ].
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5406
                nr := nr + increment.
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5407
            ].
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5408
        ]
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5409
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  5410
    self showNotFound.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5411
    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
  5412
    ^ 0
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5413
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5414
    "Created: / 08-03-2012 / 11:57:26 / cg"
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5415
!
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  5416
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5417
findNextSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5418
    "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
  5419
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5420
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5421
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5422
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5423
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5424
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5425
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5426
findNextWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5427
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5428
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5429
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5430
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5431
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5432
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5433
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5434
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5435
    self findNextForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5436
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5437
	    |s|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5438
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5439
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5440
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5441
		(searchString includesMatchCharacters not
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5442
			    and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5443
		or:[ searchString includesMatchCharacters
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5444
			    and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5445
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5446
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5447
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5448
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5449
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5450
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5451
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5452
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5453
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5454
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5455
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5456
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5457
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5458
findPrevious
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5459
    "findPrevious menu action: select the previous change.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5460
     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
  5461
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5462
    lastSearchType == #selector ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5463
	^ self findPreviousForSelector
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5464
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5465
    lastSearchType == #snapshot ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5466
	^ self findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5467
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5468
    lastSearchType == #string ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5469
	^ self findPreviousForString
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5470
    ].
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5471
    lastSearchType == #difference ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5472
	^ self findPreviousDifference
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5473
    ].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5474
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5475
    ^ self findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5476
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5477
    "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
  5478
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5479
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5480
findPreviousDifference
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5481
    lastSearchType := #difference.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5482
    changeNrShown isNil ifTrue:[^ self].
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5483
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5484
    self findPreviousForWhich:[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5485
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5486
		"/ same
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5487
		false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5488
	    ] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5489
		"/ different
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5490
		true
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5491
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5492
	]
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5493
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  5494
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5495
findPreviousForClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5496
    "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
  5497
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5498
    self findPreviousForClassStartingAt:(changeNrShown - 1)
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5499
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5500
    "Modified: / 20-11-2006 / 16:39:04 / cg"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5501
!
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5502
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5503
findPreviousForClassStartingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5504
    "findPreviousForClass menu action: select the previous change for the selected changes class"
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5505
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5506
    |cls|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5507
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5508
    lastSearchType := #class.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5509
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5510
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5511
    cls := self classNameOfChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5512
    cls isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5513
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5514
    self 
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5515
        findPreviousForWhich:
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5516
            [:changeNr |
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5517
                    |thisClass|
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5518
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5519
                    thisClass := self classNameOfChange:changeNr.
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5520
                    (thisClass = cls
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5521
                    or:[cls includesMatchCharacters and:[cls match:thisClass]])]
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5522
        startingAt:startNr
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5523
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
  5524
    "Created: / 20-11-2006 / 16:38:37 / cg"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5525
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5526
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5527
findPreviousForSelector
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5528
    "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
  5529
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5530
    |sel|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5531
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5532
    lastSearchType := #selector.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5533
    changeNrShown isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5534
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5535
    sel := self selectorOfMethodChange:changeNrShown.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5536
    sel isNil ifTrue:[^ self].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5537
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5538
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5539
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5540
		|thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5541
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5542
		thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5543
		(thisSelector = sel
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5544
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5545
	]
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5546
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5547
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5548
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5549
findPreviousForString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5550
    lastSearchString isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5551
	^ self findString
4458
615e0ba9c936 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  5552
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5553
    self findPreviousWithString:lastSearchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5554
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5555
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5556
findPreviousForWhich:aBlock
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5557
    "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
  5558
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5559
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5560
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5561
    "Modified: / 06-10-2006 / 11:01:38 / cg"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5562
!
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5563
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5564
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5565
    "helper: select the previous change for which aBlock evaluates to true"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5566
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5567
    ^ self     
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5568
        findNextOrPrevious:#previous 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  5569
        forWhich:aBlock startingAt:changeNrToStartSearch
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5570
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5571
    "Created: / 06-10-2006 / 11:01:09 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5572
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5573
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5574
findPreviousSnapshot
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5575
    "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
  5576
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5577
    lastSearchType := #snapshot.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5578
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5579
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5580
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5581
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5582
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5583
findPreviousWithString:searchString
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5584
    lastSearchType := #string.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5585
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5586
    lastSearchString := searchString.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5587
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5588
    changeNrShown isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5589
	changeNrShown := 0.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5590
    ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5591
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5592
    self findPreviousForWhich:
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5593
	[:changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5594
	    |s includesMatchCharacters|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5595
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5596
	    includesMatchCharacters := searchString includesMatchCharacters.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5597
	    s := self sourceOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5598
	    s notNil and:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5599
		(includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5600
		or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5601
	].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5602
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5603
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5604
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5605
    codeView setSearchPattern:searchString.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5606
    codeView
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5607
	searchFwd:searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5608
	ignoreCase:false
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5609
	startingAtLine:1 col:0
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5610
	ifAbsent:nil.
3341
8f156ac559d5 fixed matching in find actions
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
  5611
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5612
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  5613
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5614
findSelector
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5615
    "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
  5616
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5617
    |current|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5618
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5619
    changeNrShown notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5620
	current := self selectorOfMethodChange:changeNrShown.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  5621
    ].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5622
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5623
    self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5624
	askForSearch:'Selector to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5625
	initialAnswer:current
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5626
	thenSearchUsing:[:searchString :changeNr |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5627
			    |thisSelector|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5628
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5629
			    thisSelector := self selectorOfMethodChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5630
			    (thisSelector = searchString
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5631
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5632
			]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5633
	onCancel:[^ self].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5634
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5635
    lastSearchType := #selector.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5636
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5637
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  5638
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5639
findString
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5640
    |searchString directionHolder|
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5641
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5642
    lastSearchType := #string.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5643
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5644
    searchString := codeView selection.
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5645
    searchString size == 0 ifTrue:[searchString := lastSearchString].
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5646
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5647
    searchString := self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5648
	askForSearchString:'String to search for:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5649
	initialAnswer:(searchString ? '')
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5650
	directionInto:(directionHolder := ValueHolder new).
3554
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5651
1ef7694bd41a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3543
diff changeset
  5652
    searchString size == 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5653
	^ self
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5654
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5655
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5656
    directionHolder value == #backward ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5657
	self findPreviousWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5658
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5659
	self findNextWithString:searchString.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5660
    ]
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5661
!
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  5662
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5663
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5664
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  5665
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5666
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5667
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5668
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5669
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5670
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5671
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5672
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5673
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5674
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5675
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5676
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5677
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5678
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5679
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5680
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5681
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5682
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5683
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5684
            lastSaveFileName := fileName.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5685
            self withCursor:(Cursor write) do:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5686
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5687
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5688
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5689
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5690
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5691
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5692
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5693
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5694
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5695
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5696
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5697
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5698
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5699
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5700
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  5701
    "Modified: / 27-10-2010 / 11:31:06 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5702
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5703
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5704
selectionCanged
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5705
self halt
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5706
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5707
    "Created: / 03-01-2012 / 15:26:36 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5708
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5709
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5710
setEnforcedNameSpace
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5711
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5712
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5713
    listOfKnownNameSpaces := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5714
    NameSpace
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5715
        allNameSpaces
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5716
            do:[:eachNameSpace |
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5717
                listOfKnownNameSpaces add:eachNameSpace name
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5718
            ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5719
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5720
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5721
    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5722
        |box|
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5723
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5724
        keepAsDefaultHolder := true asValue.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5725
        box := ex parameter.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5726
        box verticalPanel
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5727
            add:((CheckBox 
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5728
                    label:(resources string:'Use this as default in the future')) 
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5729
                    model:keepAsDefaultHolder).
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5730
        ex proceed.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5731
    ] do:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5732
        nsName := Dialog
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5733
                request:'When applying, new classes are created in nameSpace:'
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5734
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5735
                list:listOfKnownNameSpaces.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5736
    ].
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5737
    nsName isNil ifTrue:[^ self].
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5738
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5739
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5740
        applyInOriginalNameSpace value:true.
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5741
        LastEnforcedNameSpace := enforcedNameSpace := nil.
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5742
    ] ifFalse:[
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5743
        applyInOriginalNameSpace value:false.
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5744
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
6682
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5745
        autoCompare value ifTrue:[
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5746
            self doUpdate
aa5d015b66b0 Namespace -> NameSpace
Claus Gittinger <cg@exept.de>
parents: 6658
diff changeset
  5747
        ].
8494
0bd45c6b5486 remember the last enforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 8393
diff changeset
  5748
    ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  5749
    KeepEnforcedNameSpace := keepAsDefaultHolder value
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5750
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
  5751
    "Modified: / 07-09-2006 / 15:10:25 / cg"
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5752
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5753
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5754
setEnforcedPackage
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5755
    |pkg listOfKnownPackages|
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5756
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5757
    listOfKnownPackages := Set new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5758
    Smalltalk allClassesDo:[:eachClass |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5759
				|package|
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5760
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5761
				package := eachClass package.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5762
				package size > 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5763
				    listOfKnownPackages add:package
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5764
				]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5765
			   ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5766
    listOfKnownPackages := listOfKnownPackages asOrderedCollection sort.
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5767
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5768
    pkg := Dialog
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5769
		request:'When applying, changes go into package:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5770
		initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5771
		list:listOfKnownPackages.
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5772
    pkg size ~~ 0 ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5773
	enforcedPackage := pkg
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  5774
    ]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5775
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5776
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5777
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5778
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5779
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5780
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5781
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5782
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5783
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5784
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5785
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5786
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5787
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5788
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5789
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5790
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5791
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5792
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5793
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5794
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5795
changeChunks
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5796
    ^ changeChunks
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
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5799
changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5800
    ^ changeClassNames
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5801
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5802
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5803
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5804
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5805
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5806
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5807
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5808
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5809
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  5810
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5811
changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5812
    ^ changeHeaderLines
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5813
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5814
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5815
changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5816
    ^ changeIsFollowupMethodChange
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5817
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5818
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5819
changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5820
    ^ changePositions
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5821
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5822
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5823
changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5824
    ^ changeTimeStamps
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5825
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5826
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5827
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5828
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5829
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5830
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5831
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5832
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5833
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5834
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5835
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5836
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5837
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5838
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5839
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5840
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5841
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5842
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5843
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5844
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5845
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  5846
    "Modified: / 06-10-2006 / 11:18:49 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5847
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5848
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5849
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5850
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5851
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5852
    "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
  5853
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5854
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5855
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5856
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5857
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5858
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5859
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5860
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5861
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5862
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5863
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5864
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5865
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5866
                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
  5867
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5868
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5869
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5870
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5871
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5872
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5873
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5874
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5875
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5876
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5877
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5878
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5879
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5880
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5881
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5882
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5883
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5884
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  5885
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5886
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5887
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5888
    enforcedNameSpace notNil ifTrue:[
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5889
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5890
            changeClass := enforcedNameSpace classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5891
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5892
            changeClass := enforcedNameSpace loadedClassNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5893
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5894
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5895
    changeClass isNil ifTrue:[
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5896
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5897
            changeClass := Smalltalk classNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5898
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5899
            changeClass := Smalltalk loadedClassNamed:className.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5900
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5901
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5902
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5903
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5904
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5905
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5906
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5907
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5908
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5909
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5910
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  5911
    "Modified: / 03-08-2006 / 14:02:31 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5912
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5913
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5914
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5915
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5916
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5917
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5918
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5919
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5920
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
  5921
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5922
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5923
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5924
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5925
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5926
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5927
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5928
    timeStampInfo notNil ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5929
        entry colAt:4 put:timeStampInfo.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5930
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5931
    changeHeaderLines add:entry
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5932
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5933
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  5934
processChunk
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5935
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5936
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5937
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5938
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5939
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5940
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5941
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5942
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5943
    changeChunks add:chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5944
    changeClassNames add:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5945
    changePositions add:chunkPosition.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5946
    changeTimeStamps add:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5947
    changeIsFollowupMethodChange add:false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5948
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5949
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5950
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5951
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5952
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5953
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5954
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5955
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5956
            [
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5957
                changeChunks removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5958
                changeClassNames removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5959
                changePositions removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5960
                changeTimeStamps removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5961
                changeIsFollowupMethodChange removeLast.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5962
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5963
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5964
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5965
    changeString notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5966
        self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5967
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5968
        headerLine notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5969
            changeHeaderLines add:headerLine
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5970
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5971
    ]
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5972
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  5973
    "Modified: / 03-02-2012 / 11:02:36 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5974
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5975
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5976
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5977
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5978
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5979
    |askedForEditingClassSource changeClass category anyMethod
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5980
     sel cls p rec clsName done first text methodPos
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5981
     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
  5982
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5983
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5984
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5985
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5986
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5987
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5988
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5989
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5990
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5991
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5992
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5993
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5994
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5995
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5996
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5997
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5998
    p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
6835
87e0844b7e12 Avoid debugger on timestamp information whenn doing autocompare
Stefan Vogel <sv@exept.de>
parents: 6820
diff changeset
  5999
    (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6000
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6001
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6002
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6003
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6004
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6005
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6006
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6007
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6008
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6009
                classCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6010
                changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6011
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6012
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6013
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6014
                    methodCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6015
                    changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6016
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6017
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6018
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6019
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6020
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6021
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6022
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6023
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6024
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6025
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6026
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6027
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6028
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6029
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6030
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6031
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6032
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6033
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6034
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6035
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6036
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6037
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6038
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6039
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6040
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6041
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6042
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6043
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6044
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6045
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6046
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6047
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6048
        changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6049
        methodPos := inStream position1Based.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6050
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6051
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6052
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6053
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6054
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6055
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6056
            first ifFalse:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6057
                changeChunks add:chunkText.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6058
                changeClassNames add:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6059
                changePositions add:methodPos.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6060
                changeTimeStamps add:timeStampInfo.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6061
                changeIsFollowupMethodChange add:true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6062
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6063
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6064
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6065
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6066
            ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6067
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6068
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6069
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6070
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6071
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6072
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6073
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6074
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6075
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6076
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6077
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6078
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6079
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6080
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6081
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6082
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6083
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6084
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6085
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6086
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6087
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6088
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6089
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6090
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6091
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6092
                    methodChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6093
                        p := Parser
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6094
                                 parseMethodSpecification:text
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6095
                                 in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6096
                                 ignoreErrors:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6097
                                 ignoreWarnings:true.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6098
                        (p notNil and:[p ~~ #Error]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6099
                            methodSelector := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6100
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6101
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6102
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6103
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6104
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6105
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6106
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6107
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6108
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6109
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6110
                    changeType := '{ ' , category , ' }'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6111
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6112
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6113
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6114
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6115
                    changeClass isNil ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6116
                        cls := changeClass theNonMetaclass
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6117
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6118
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6119
                    (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
  6120
                        changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6121
                            changeDelta := '+'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6122
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6123
                            changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6124
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6125
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6126
                        (changeClass includesSelector:methodSelector asSymbol) ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6127
                            changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6128
                        ] ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6129
                            m := changeClass compiledMethodAt:methodSelector asSymbol.
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6130
                            Error handle:[:ex |
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6131
                                Transcript showCR:'Error while accessing methods current source: ',ex description.
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6132
                            ] do:[
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6133
                                currentText := m source.
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6134
                            ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6135
                            currentText notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6136
                                text asString string withoutTrailingSeparators = currentText asString string withoutTrailingSeparators ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6137
                                    changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6138
                                ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6139
                                    t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6140
                                    t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6141
                                    t1 = t2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6142
                                        changeDelta := '='
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6143
                                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6144
                                        |tree1 tree2|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6145
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6146
                                        RBParser notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6147
                                            tree1 := RBParser parseMethod:currentText onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6148
                                            tree2 := RBParser parseMethod:text onError:[:aString :pos | ^ nil].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6149
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6150
                                            tree1 = tree2 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6151
                                                changeDelta := '~'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6152
                                            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6153
                                        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6154
                                    ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6155
                                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6156
                            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6157
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6158
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6159
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6160
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6161
            self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6162
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6163
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6164
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6165
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6166
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6167
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6168
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6169
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6170
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6171
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6172
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6173
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6174
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6175
processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6176
    |s changeClass sel  cls p rec clsName ownerTree ownerName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6177
     m nameAndClass|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6178
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6179
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6180
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6181
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6182
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6183
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6184
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6185
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6186
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6187
     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
  6188
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6189
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6190
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6191
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6192
        timeStampInfo := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6193
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6194
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6195
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6196
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6197
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6198
    p := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6199
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6200
        p isMessage ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6201
            sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6202
            rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6203
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6204
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6205
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6206
        (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6207
            "/ a comment only
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6208
            changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6209
            NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6210
                changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6211
                "/ changeString := changeString allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6212
                changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6213
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6214
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6215
            changeType := '(???)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6216
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6217
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6218
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6219
    (sel == #comment:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6220
        changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6221
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6222
        changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6223
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6224
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6225
            changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6226
            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6227
            "/ changeString := clsName allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6228
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6229
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6230
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6231
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6232
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6233
                (changeClass comment = (p args at:1) evaluate) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6234
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6235
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6236
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6237
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6238
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6239
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6240
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6241
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6242
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6243
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6244
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6245
        sel := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6246
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6247
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6248
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6249
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6250
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6251
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6252
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6253
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6254
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6255
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6256
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6257
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6258
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6259
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6260
        changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6261
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6262
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6263
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6264
    (p notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6265
    and:[p ~~ #Error
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6266
    and:[p isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6267
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6268
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6269
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6270
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6271
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6272
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6273
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6274
            changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6275
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6276
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6277
            changeClass notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6278
                m := changeClass compiledMethodAt:sel asSymbol.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6279
                m notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6280
                    m category = (p args at:1) evaluate ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6281
                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6282
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6283
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6284
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6285
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6286
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6287
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6288
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6289
            changeString := self contractClass:clsName selector:sel to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6290
            changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6291
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6292
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6293
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6294
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6295
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6296
        changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6297
        clsName := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6298
        changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6299
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6300
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6301
        ('*privateIn:' match:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6302
            ownerTree := p args last.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6303
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6304
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6305
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6306
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6307
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6308
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6309
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6310
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6311
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6312
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6313
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6314
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6315
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6316
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6317
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6318
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6319
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6320
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6321
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6322
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6323
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6324
                    ((cls superclass isNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6325
                        and:[p receiver isConstant
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6326
                        and:[p receiver evaluate isNil]])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6327
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6328
                        cls superclass notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6329
                        and:[p receiver isConstant not
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6330
                        and:[cls superclass name = p receiver name]]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6331
                    ]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6332
                        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
  6333
                            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
  6334
                                (p args at:4) evaluate isEmpty ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6335
                                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6336
                                    ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6337
                                        "/ ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6338
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6339
                                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6340
                                        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
  6341
                                            changeDelta := '='.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6342
                                        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6343
                                            changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6344
                                        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6345
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6346
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6347
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6348
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6349
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6350
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6351
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6352
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6353
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6354
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6355
        (#(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6356
          #'primitiveDefinitions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6357
          #'primitiveFunctions:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6358
          #'primitiveVariables:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6359
         ) includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6360
            changeType := '(class definition)'.
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6361
            clsName := rec name.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6362
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6363
            ((sel == #instanceVariableNames:)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6364
            and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6365
            and:[rec selector == #class]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6366
                clsName := rec receiver name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6367
                changeClass := (self nameSpaceForApply) classNamed:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6368
                changeType := '(class definition)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6369
                changeClassNames at:changeClassNames size put:clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6370
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6371
                autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6372
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6373
                        changeDelta := '?'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6374
                    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6375
                        s := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6376
                        s = changeClass class instanceVariableString ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6377
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6378
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6379
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6380
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6381
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6382
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6383
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6384
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6385
    "Modified: / 14-08-2010 / 12:54:24 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6386
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6387
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6388
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6389
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6390
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6391
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6392
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6393
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6394
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6395
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6396
    "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
  6397
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6398
     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
  6399
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6400
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6401
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6402
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6403
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6404
                '=' -> 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
  6405
                '~' -> 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
  6406
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6407
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6408
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6409
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6410
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6411
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6412
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6413
     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
  6414
     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
  6415
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6416
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6417
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6418
    changeChunks := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6419
    changeClassNames := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6420
    changeHeaderLines := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6421
    changePositions := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6422
    changeTimeStamps := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6423
    changeIsFollowupMethodChange := OrderedCollection new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6424
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6425
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6426
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6427
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6428
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6429
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6430
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6431
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6432
        inStream skipSeparators.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6433
        chunkPosition := inStream position1Based.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6434
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6435
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6436
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  6437
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6438
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6439
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6440
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6441
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6442
    "Modified: / 27-08-1995 / 23:06:55 / claus"
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6443
    "Modified: / 10-07-2010 / 10:58:08 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6444
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6445
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  6446
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6447
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6448
version
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  6449
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.425 2012-03-08 11:03:32 cg Exp $'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6450
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6451
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6452
version_CVS
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  6453
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.425 2012-03-08 11:03:32 cg Exp $'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  6454
! !