ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Fri, 06 May 2016 15:02:17 +0200
changeset 16467 c4582914a4be
parent 16390 fe087710202d
child 16475 5206032f1a19
permissions -rw-r--r--
#UI_ENHANCEMENT by cg class: ChangesBrowser usability: info line added: #showNumberOfChanges #updateInfoAfterChangedSelection #updateSourceCodeAfterChangedSelection comment/format in:5 methods changed:6 methods
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
15082
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    14
"{ NameSpace: Smalltalk }"
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    15
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    16
StandardSystemView subclass:#ChangesBrowser
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    17
	instanceVariableNames:'changesReader changeInfoList changeListView codeView diffView
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    18
		changeFileName anyChanges changeNrShown changeNrProcessed
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    19
		multipleApply autoCompare changeFileSize changeFileTimestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    20
		checkBlock tabSpec autoUpdate editingClassSource lastSearchType
4489
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
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
    26
		defaultApplicationForVAGEClasses infoHolder'
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
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    36
		changeFileTimestamp changeInfo changeChunks changeClassNames
6512
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
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    47
Object subclass:#ChangeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    48
	instanceVariableNames:'position chunk className selector headerLine timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    49
		isFollowupChange'
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    50
	classVariableNames:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    51
	poolDictionaries:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    52
	privateIn:ChangesBrowser
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    53
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    54
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    55
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    56
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    57
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    58
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    60
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    61
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    62
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    63
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    64
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    65
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    66
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    69
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    70
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    71
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    72
"
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    73
    this implements a browser for the changes-file 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    74
    (actually, it can display any sourceFile's contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    75
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    76
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    77
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    78
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    79
    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
    80
    and the Merovingian has not yet detected this one ;-)
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    81
    It will be completely replaced by the ChangeSetBrowser class in the near future.
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    82
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    83
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    84
    [Class variables:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    85
        CompressSnapshotInfo            if true (the default), snapshot entries
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    86
                                        are also compressed in the compress function.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    87
                                        Some users prefer them to be not compressed.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    88
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    89
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    90
    Notice:
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    91
        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
    92
        (which did not exist when the ChangesBrowser was originally written)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    93
        and manipulate that changeSet.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    94
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    95
        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
    96
        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
    97
        subclasses (where it belongs) and give a better encapsulation and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    98
        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
    99
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   100
        The Change hierarchy is currently been completed, and the changes browser
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   101
        will be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   102
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   103
    [author:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   104
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   105
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   106
    [start with:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   107
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   108
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   109
    [see also:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   110
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   111
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   112
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   113
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   114
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   115
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   116
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   117
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   118
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   119
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   120
    |fileName browser|
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   121
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   122
    fileName := aFilename asFilename pathName.
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
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   125
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   126
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   127
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   128
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   129
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   130
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   131
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   132
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   133
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   134
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   135
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   136
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   137
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   138
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   139
571fd5eee315 Initial revision
claus
parents:
diff changeset
   140
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   141
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   142
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   143
571fd5eee315 Initial revision
claus
parents:
diff changeset
   144
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   145
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   146
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   147
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   148
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   149
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   150
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   151
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   152
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   153
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   154
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   155
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   156
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   157
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   158
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   159
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   160
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   161
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   162
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   163
     (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
   164
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   165
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   166
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   167
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   168
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   169
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   170
!ChangesBrowser class methodsFor:'help specs'!
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   171
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   172
flyByHelpSpec
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   173
    <resource: #help>
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   174
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   175
    ^ Dictionary new 
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   176
        addPairsFrom:#(
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   177
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   178
#applyChange
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   179
'Apply (install) the selected change'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   180
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   181
deleteAllForClass
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   182
'Delete all changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   183
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   184
deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   185
'Delete all previous changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   186
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   187
deleteForClassToEnd
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   188
'Delete this and all following changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   189
)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   190
! !
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   191
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   192
!ChangesBrowser class methodsFor:'menu specs'!
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   193
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   194
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   195
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   196
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   197
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   198
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   199
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   200
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   201
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   202
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   203
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   204
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   205
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   206
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   207
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   208
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   209
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   210
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   211
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   212
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   213
            label: 'File'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   214
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   215
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   216
           (Menu
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
                  label: 'Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   220
                  itemValue: doCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   221
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   222
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   223
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   224
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   225
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   226
                  label: 'Compress for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   227
                  itemValue: doCompressClass
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
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   233
                  label: 'Compress for Class && Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   234
                  itemValue: doCompressSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   236
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   237
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   238
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
                  label: 'Compare and Compress'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   240
                  itemValue: doCompareAndCompress
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   241
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   242
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   243
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   244
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   245
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   246
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   247
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   248
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   249
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   250
                  label: 'Fileout && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   251
                  itemValue: doFileoutAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   252
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   253
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   254
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   255
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   256
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   257
                  label: 'CheckIn && Delete all Changes for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   258
                  itemValue: doCheckinAndDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   259
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   260
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   261
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   262
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   263
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   264
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   265
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   266
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   267
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   268
                  label: 'Save In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   269
                  itemValue: doSave
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   270
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   271
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   272
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   273
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   274
                  label: 'Save to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   275
                  itemValue: doSaveRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   276
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   277
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   278
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   279
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   280
                  label: 'Save for Class to End In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   281
                  itemValue: doSaveClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   282
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   283
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   284
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   285
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   286
                  label: 'Save all for Class In...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   287
                  itemValue: doSaveClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   288
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   289
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   290
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   291
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   292
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   293
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   294
                  label: 'Writeback ClassFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   295
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   296
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   297
                  isVisible: editingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   298
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   299
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   300
                  label: 'Writeback ChangeFile'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   301
                  itemValue: doWriteBack
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   302
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   303
                  isVisible: notEditingClassSource
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   304
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   305
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   306
                  label: '-'
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
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   309
                  label: 'Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   310
                  itemValue: doUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   311
                  translateLabel: true
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: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   315
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   316
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   317
                  label: 'Exit'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   318
                  itemValue: menuExit
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   319
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   320
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   321
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   322
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   323
              nil
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
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   326
         (MenuItem
15082
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
   327
            label: 'CHANGE'
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   328
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   329
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   330
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   331
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   332
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   333
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   334
                  label: 'Apply'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   335
                  itemValue: doApply
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   336
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   337
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   338
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   339
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   340
                  label: 'Apply to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   341
                  itemValue: doApplyRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   342
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   343
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   344
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   345
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   346
                  label: 'Apply from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   347
                  itemValue: doApplyFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   348
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   349
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   350
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   351
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   352
                  label: 'Apply for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   353
                  itemValue: doApplyClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   354
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   355
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   356
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   357
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   358
                  label: 'Apply for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   359
                  itemValue: doApplyClassFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   360
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   361
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   362
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   363
                  enabled: hasNoSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   364
                  label: 'Apply All'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   365
                  itemValue: doApplyAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   366
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   367
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   368
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   369
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   370
                  label: 'Apply to Conflict or End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   371
                  itemValue: doApplyToConflictOrEnd
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   372
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   373
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   374
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   375
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   376
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   377
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   378
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   379
                  label: 'Delete'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   380
                  itemValue: doDelete
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   381
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   382
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   383
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   384
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   385
                  label: 'Delete to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   386
                  itemValue: doDeleteRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   387
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   388
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   389
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   390
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   391
                  label: 'Delete from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   392
                  itemValue: doDeleteFromBeginning
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   393
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   394
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   395
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   396
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   397
                  label: 'Delete for Class to End'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   398
                  itemValue: doDeleteClassRest
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   399
                  translateLabel: true
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: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   403
                  label: 'Delete for Class from Begin'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   404
                  itemValue: doDeleteClassFromBeginning
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
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   407
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   408
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   409
                  label: 'Delete all for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   410
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   411
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   412
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   413
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   414
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   415
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   416
                  label: 'Delete all for Class && its Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   417
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   418
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   419
                  isVisible: hasNoMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   420
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   421
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   422
                  enabled: hasSelection
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   423
                  label: 'Delete all for Namespace'
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   424
                  itemValue: doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   425
                  translateLabel: true
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   426
                )
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   427
               (MenuItem
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
   428
                  enabled: hasSelection
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   429
                  label: 'Delete all for Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   430
                  itemValue: doDeleteClassAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   431
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   432
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   433
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   434
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   435
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   436
                  label: 'Delete all for Classes && their Private Classes'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   437
                  itemValue: doDeleteClassAndPrivateClassesAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   438
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   439
                  isVisible: hasMultiSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   440
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   441
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   442
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   443
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   444
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   445
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   446
                  label: 'Delete all Versions of Selected Method'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   447
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   448
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   449
                  isVisible: hasNoMultiSelectionHolder
7096
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: 'Delete all Versions of all Selected Methods'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   454
                  itemValue: doDeleteClassSelectorAll
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   455
                  translateLabel: true
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   456
                  isVisible: hasMultiSelectionHolder
7096
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
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   459
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   460
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   461
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   462
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   463
                  label: 'Compare with Current'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   464
                  itemValue: doCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   465
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   466
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   467
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   468
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   469
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   470
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   471
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   472
                  label: 'Make Change a Patch'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   473
                  itemValue: doMakePatch
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   474
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   475
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   476
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   477
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   478
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   479
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   480
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   481
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   482
            label: 'Search'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   483
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   484
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   485
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   486
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   487
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   488
                  label: 'Class...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   489
                  itemValue: findClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   490
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   491
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   492
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   493
                  enabled: hasSelection
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   494
                  label: 'First for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   495
                  itemValue: findFirstForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   496
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   497
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   498
               (MenuItem
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   499
                  enabled: hasSelection
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   500
                  label: 'Previous for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   501
                  itemValue: findPreviousForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   502
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   503
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   504
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   505
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   506
                  label: 'Next for Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   507
                  itemValue: findNextForClass
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   508
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   509
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   510
               (MenuItem
7527
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   511
                  enabled: hasSelection
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   512
                  label: 'Last for Class'
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   513
                  itemValue: findLastForClass
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   514
                  translateLabel: true
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   515
                )
86c103d92216 first & last for class
Claus Gittinger <cg@exept.de>
parents: 7507
diff changeset
   516
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   517
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   518
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   519
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   520
                  label: 'Selector...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   521
                  itemValue: findSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   522
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   523
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   524
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   525
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   526
                  label: 'Previous for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   527
                  itemValue: findPreviousForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   528
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   529
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   530
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   531
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   532
                  label: 'Next for Selector'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   533
                  itemValue: findNextForSelector
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   534
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   535
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   536
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   537
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   538
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   539
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   540
                  label: 'String...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   541
                  itemValue: findString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   542
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   543
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   544
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   545
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   546
                  label: 'Previous with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   547
                  itemValue: findPreviousForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   548
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   549
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   550
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   551
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   552
                  label: 'Next with String'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   553
                  itemValue: findNextForString
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   554
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   555
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   556
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   557
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   558
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   559
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   560
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   561
                  label: 'Previous Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   562
                  itemValue: findPreviousDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   563
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   564
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   565
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   566
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   567
                  label: 'Next Difference'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   568
                  itemValue: findNextDifference
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   569
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   570
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   571
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   572
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   573
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   574
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   575
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   576
                  label: 'Previous Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   577
                  itemValue: findPreviousSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   578
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   579
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   580
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   581
                  enabled: hasSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   582
                  label: 'Next Snapshot'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   583
                  itemValue: findNextSnapshot
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   584
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   585
                )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   586
               (MenuItem
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   587
                  label: 'Last Snapshot'
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   588
                  itemValue: findLastSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   589
                  translateLabel: true
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   590
                )
7096
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
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   593
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   594
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   595
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   596
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   597
            label: 'Browse'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   598
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   599
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   600
           (Menu
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
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   603
                  enabled: hasSingleSelection
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   604
                  label: 'Class'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   605
                  itemValue: doBrowse
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   606
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   607
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   608
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   609
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   610
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   611
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   612
                  label: 'Senders...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   613
                  itemValue: doBrowseSenders
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   614
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   615
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   616
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   617
                  label: 'Implementors...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   618
                  itemValue: doBrowseImplementors
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   619
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   620
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   621
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   622
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   623
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   624
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   625
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   626
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   627
            label: 'Settings'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   628
            translateLabel: true
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   629
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   630
           (Menu
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   631
              (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   632
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   633
                  label: 'Auto Compare'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   634
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   635
                  indication: autoCompare
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   636
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   637
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   638
                  label: 'Autoload As Required'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   639
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   640
                  indication: autoloadAsRequired
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   641
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   642
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   643
                  label: 'Show Diffs'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   644
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   645
                  indication: showingDiffs
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   646
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   647
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   648
                  label: 'Auto Update'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   649
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   650
                  indication: autoUpdate
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   651
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   652
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   653
                  label: '-'
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: 'Add to ChangeSet when Applying'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   657
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   658
                  indication: updateChangeSet
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   659
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   660
               (MenuItem
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   661
                  label: 'Ignore public/private categories (Dolphin code)'
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   662
                  itemValue: ignorePublicPrivateCategories:
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   663
                  translateLabel: true
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   664
                  indication: ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   665
                )
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   666
               (MenuItem
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   667
                  label: '-'
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
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   670
                  label: 'Apply into Package...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   671
                  itemValue: setEnforcedPackage
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   672
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   673
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   674
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   675
                  label: 'Apply into NameSpace...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   676
                  itemValue: setEnforcedNameSpace
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   677
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   678
                )
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   679
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   680
                  label: '-'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   681
                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   682
               (MenuItem
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   683
                  label: 'Settings...'
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   684
                  itemValue: openSettingsDialog
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   685
                  translateLabel: true
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
   686
                )
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   687
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   688
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   689
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   690
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   691
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   692
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   693
            label: 'MENU_Help'
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   694
            translateLabel: true
7415
746d97a85c4c #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 7363
diff changeset
   695
            startGroup: conditionalRight
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   696
            submenu: 
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   697
           (Menu
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
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   700
                  label: 'ChangesBrowser Documentation'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   701
                  itemValue: openHTMLDocument:
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   702
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   703
                  argument: 'tools/cbrowser/TOP.html'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   704
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   705
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   706
                  label: '-'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   707
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   708
               (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   709
                  label: 'About ChangesBrowser...'
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   710
                  itemValue: openAboutThisApplication
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   711
                  translateLabel: true
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   712
                )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   713
               )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   714
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   715
              nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   716
            )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   717
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   718
         )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   719
        nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   720
        nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   721
      )
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   722
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   723
    "Modified: / 25-12-2011 / 11:21:56 / cg"
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   724
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   725
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   726
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   727
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   728
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   729
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   730
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   731
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   732
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   733
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   734
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   735
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   736
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   737
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   738
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   739
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   740
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   741
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   742
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   743
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   744
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   745
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   746
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   747
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   748
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   749
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   750
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   751
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   752
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   753
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   754
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   755
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   756
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   757
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   758
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   759
            isVisible: canDeleteChanges
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   760
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   761
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   762
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   763
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   764
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   765
          )
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   766
         (MenuItem
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   767
            activeHelpKey: deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   768
            enabled: hasSelectionHolder
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   769
            isVisible: canDeleteChanges
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   770
            label: 'Delete for Class from Beginning'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   771
            itemValue: doDeleteClassFromBeginning
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   772
            translateLabel: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   773
            isButton: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   774
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassFromStart24x24Icon)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   775
          )
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   776
         (MenuItem
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   777
            activeHelpKey: deleteForClassToEnd
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   778
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   779
            isVisible: canDeleteChanges
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   780
            label: 'Delete for Class to End'
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   781
            itemValue: doDeleteClassRest
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   782
            translateLabel: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   783
            isButton: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   784
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassToEnd24x24Icon)
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   785
          )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   786
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   787
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   788
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   789
      )
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   790
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   791
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   792
!ChangesBrowser class methodsFor:'private-changeFile access'!
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
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   795
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   796
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   797
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   798
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   799
    (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
   800
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   801
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   802
	    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
   803
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   804
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   805
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   806
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   807
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   808
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   809
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   810
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   811
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   812
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   813
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   814
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   815
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   816
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   817
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   818
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   819
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   820
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   821
readXMLChangesFromFile:changeFileName inBackground:inBackground
14011
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   822
    |set|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   823
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   824
    changeFileName asFilename readingFileDo:[:s|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   825
        set := self readXMLChangesFrom:s inBackground:false.
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   826
    ].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   827
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   828
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   829
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   830
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   831
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   832
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   833
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   834
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   835
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   836
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   837
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   838
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   839
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   840
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   841
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   842
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   843
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   844
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   845
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   846
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   847
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   848
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   849
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   850
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   851
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   852
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   853
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   854
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   855
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   856
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   857
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   858
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   859
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   860
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   861
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   862
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   863
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   864
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   865
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   866
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   867
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   868
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   869
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   870
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   871
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   872
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   873
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   874
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   875
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   876
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   877
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   878
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   879
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   880
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   881
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   882
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   883
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   884
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   885
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   886
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   887
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   888
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   889
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   890
canDeleteChanges
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   891
    "makes the delete buttons in the toolbar visible"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   892
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   893
    ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   894
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   895
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   896
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   897
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   898
        changeListSelectionHolder := nil asValue.
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
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   901
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   902
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   903
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   904
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   905
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   906
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   907
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   908
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   909
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   910
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   911
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   912
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   913
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   914
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   915
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   916
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   917
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   918
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   919
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   920
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   921
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   922
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   923
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   924
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   925
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   926
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   927
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
   928
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   929
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   930
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   931
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
   932
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   933
hasSelection
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   934
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   935
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   936
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   937
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   938
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   939
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   940
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   941
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   942
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   943
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
   944
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   945
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   946
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   947
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   948
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   949
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   950
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   951
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   952
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   953
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   954
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   955
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   956
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   957
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   958
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   959
    ^ self editingClassSource not
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
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   962
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   963
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   964
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   965
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   966
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   967
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   968
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   969
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   970
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   971
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   972
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
   973
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   974
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   975
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   976
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   977
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   978
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   979
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   980
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   981
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   982
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   983
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   984
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   985
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   986
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   987
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   988
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   989
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
   990
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   991
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   992
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   993
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
   994
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   995
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   996
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   997
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   998
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
   999
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1000
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1001
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1002
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1003
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1004
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1005
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1006
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1007
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1008
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1009
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1010
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1011
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1012
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1013
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1014
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1015
    "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
  1016
     be written when compiling. Return false here."
202
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
    ^ false
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
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
  1021
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1022
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1023
correctableError:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1024
    "compiler notifies us of an error - this should really not happen since
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1025
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1026
     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
  1027
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1028
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1029
    ShowWarningDialogs == true ifTrue:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1030
        self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1031
    ] ifFalse:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1032
        Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1033
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1034
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1035
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1036
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1037
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1038
    "compiler notifies us of a warning"
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1039
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1040
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1041
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1042
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1043
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1044
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1045
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1046
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1047
    "compiler notifies us of an error - this should really not happen since
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1048
     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
  1049
     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
  1050
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1051
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1052
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1053
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1054
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1055
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1056
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1057
error:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1058
    "compiler notifies us of an error - this should really not happen since
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1059
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1060
     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
  1061
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1062
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1063
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1064
    (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
  1065
        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
  1066
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1067
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  1068
    "if more than a single change is applied,
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1069
     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
  1070
    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
  1071
        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
  1072
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1073
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1074
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1075
             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
  1076
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1077
            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
  1078
                          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
  1079
                          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
  1080
                          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
  1081
                          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
  1082
                          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
  1083
                          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
  1084
                          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
  1085
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1086
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1087
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1088
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1089
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1090
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1091
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1092
        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
  1093
            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
  1094
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1095
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1096
        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
  1097
            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
  1098
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1099
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1100
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1101
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1102
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1103
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1104
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1105
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1106
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1107
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1108
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1109
     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
  1110
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1111
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1112
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1113
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1114
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1115
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1116
warning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1117
    "compiler notifies us of a warning - ignore it"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1118
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1119
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1120
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1121
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1122
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1123
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1124
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1125
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1126
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1127
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1128
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1129
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1130
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1131
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1132
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1133
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1134
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1135
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1136
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1137
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1138
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1139
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1140
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1141
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1142
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1143
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1144
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1145
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1146
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1147
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1148
    (key == #Delete) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1149
        self sensor shiftDown ifTrue:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1150
            self doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1151
        ] ifFalse:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1152
            self doDelete.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1153
        ].
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1154
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1155
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1156
    (key == #BackSpace) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1157
        self doDelete. "/ doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1158
        ^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1159
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1160
    (key == #Accept) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1161
        self doApply.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1162
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1163
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1164
    (key == #Find) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1165
        self findClass.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1166
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1167
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1168
    (key == #FindPrev) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1169
        self findPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1170
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1171
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1172
    (key == #FindNext) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1173
        self findNext.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1174
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1175
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1176
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1177
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1178
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1179
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1180
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1181
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1182
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
  1183
flyByHelpSpec
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
  1184
    ^ self class flyByHelpSpec
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
  1185
!
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
  1186
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1187
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1188
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1189
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1190
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1191
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1192
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1193
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1194
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1195
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1196
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1197
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1198
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1199
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1200
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1201
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1202
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1203
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1204
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1205
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1206
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1207
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1208
    self askIfChangesAreToBeWrittenBack.
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1209
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1210
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1211
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1212
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1213
    doCompare ifTrue:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1214
        self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1215
    ] ifFalse:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1216
        changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1217
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1218
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1219
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1220
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1221
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1222
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1223
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1224
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1225
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1226
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1227
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1228
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1229
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1230
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1231
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1232
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1233
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1234
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1235
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1236
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1237
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1238
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1239
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1240
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1241
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1242
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1243
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1244
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1245
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1246
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1247
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1248
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1249
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1250
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1251
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1252
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1253
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1254
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1255
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1256
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1257
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1258
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1259
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1260
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1261
                ]
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
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1264
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1265
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1266
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1267
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1268
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1269
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1270
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1271
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1272
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1273
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1274
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1275
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1276
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1277
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1278
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1279
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1280
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1281
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1282
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1283
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1284
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1285
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1286
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1287
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1288
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1289
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1290
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1291
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1292
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1293
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1294
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1295
                          ('Delete all for Classes'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1296
                          ('Delete all for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1297
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1298
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1299
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1300
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1301
                          ('Delete all for Class'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1302
                          ('Delete all for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1303
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1304
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1305
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1306
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1307
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1308
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1309
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1310
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1311
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1312
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1313
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1314
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1315
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1316
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1317
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1318
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1319
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1320
        items := items , #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1321
                      ('Fileout & Delete all for Class' doFileoutAndDeleteClassAll     )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1322
                      ('CheckIn & Delete all for Class' doCheckinAndDeleteClassAll     )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1323
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1324
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1325
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1326
    items := items , #(
7360
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
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1329
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1330
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1331
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1332
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1333
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1334
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1335
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1336
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1337
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1338
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1339
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1340
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1341
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1342
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1343
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1344
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1345
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1346
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1347
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1348
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1349
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1350
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1351
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1352
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1353
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1354
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1355
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1356
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1357
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1358
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1359
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1360
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1361
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1362
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1363
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1364
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1365
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1366
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1367
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1368
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1369
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1370
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1371
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1372
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1373
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1374
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1375
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1376
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1377
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1378
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1379
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1380
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1381
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1382
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1383
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1384
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1385
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1386
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1387
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1388
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1389
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1390
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1391
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1392
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1393
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1394
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1395
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1396
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1397
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1398
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1399
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1400
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1401
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1402
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1403
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1404
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1405
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1406
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1407
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1408
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1409
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1410
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1411
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1412
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1413
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1414
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1415
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1416
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1417
initialize
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1418
    |panel infoLabel v upperFrame buttonPanel menuPanel mH toolbarMenu tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1419
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1420
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1421
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1422
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1423
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1424
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1425
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1426
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1427
    encodingIfKnown := nil.
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1428
    autoCompare := (DefaultAutoCompare ? false) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1429
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1430
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1431
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1432
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1433
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1434
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1435
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1436
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1437
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1438
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1439
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1440
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1441
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1442
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1443
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1444
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1445
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1446
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1447
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1448
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1449
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1450
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1451
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1452
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1453
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1454
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1455
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1456
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1457
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1458
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1459
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1460
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1461
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1462
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1463
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1464
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1465
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1466
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1467
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1468
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1469
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1470
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1471
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1472
        toolbarMenu menu:(self toolbarMenu).
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
  1473
        toolbarMenu flyByHelpSpecProvider:self. "/ for helpTexts
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1474
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1475
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1476
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1477
        mH := mH + tmH + 1.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1478
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1479
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1480
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1481
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1482
    panel := VariableVerticalPanel in:self. 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1483
    "/ panel origin:(0.0 @ mH) corner:(1.0 @ 1.0)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1484
    panel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1485
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1486
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1487
                    topFraction:0.0 offset:mH
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1488
                    bottomFraction:1.0 offset:-30).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1489
    panel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1490
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1491
    infoLabel := Label in:self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1492
    infoLabel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1493
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1494
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1495
                    topFraction:1.0 offset:-28
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1496
                    bottomFraction:1.0 offset:-2).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1497
    infoLabel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1498
    infoLabel sizeFixed:true.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1499
    infoLabel level:-1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1500
    infoLabel adjust:#left.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1501
    infoLabel labelChannel:(infoHolder := '' asValue).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1502
    
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1503
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1504
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1505
        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
  1506
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1507
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1508
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1509
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1510
        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
  1511
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1512
        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
  1513
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1514
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1515
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1516
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1517
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1518
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1519
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1520
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1521
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1522
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1523
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1524
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1525
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1526
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1527
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1528
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1529
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1530
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1531
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1532
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1533
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1534
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1535
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1536
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1537
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1538
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1539
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1540
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1541
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1542
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1543
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1544
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1545
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1546
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1547
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1548
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1549
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1550
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1551
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1552
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1553
    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
  1554
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1555
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1556
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1557
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1558
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1559
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1560
    lbl := Label label:'Current' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1561
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1562
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1563
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1564
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1565
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1566
    lbl := Label label:'Change' in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1567
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1568
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1569
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1570
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1571
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1572
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1573
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1574
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1575
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1576
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1577
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1578
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1579
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1580
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1581
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1582
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1583
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1584
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1585
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1586
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1587
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1588
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1589
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1590
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1591
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1592
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1593
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1594
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1595
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1596
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1597
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1598
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1599
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1600
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1601
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1602
    "Modified: / 03-01-2012 / 15:28:45 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1603
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1604
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1605
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1606
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1607
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1608
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1609
    changeListView action:[:lineNrOrCollection | self changeSelection:lineNrOrCollection].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1610
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1611
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1612
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1613
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1614
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1615
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1616
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1617
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1618
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1619
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1620
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1621
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1622
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1623
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1624
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1625
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1626
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1627
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1628
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1629
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1630
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1631
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1632
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1633
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1634
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1635
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1636
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1637
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1638
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1639
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1640
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1641
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1642
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1643
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1644
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1645
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1646
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1647
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1648
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1649
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1650
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1651
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1652
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1653
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1654
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1655
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1656
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1657
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1658
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1659
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1660
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1661
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1662
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1663
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1664
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1665
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1666
            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
  1667
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1668
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1669
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1670
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1671
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1672
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1673
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1674
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1675
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1676
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1677
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1678
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1679
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1680
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1681
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1682
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1683
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1684
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1685
doApply
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1686
    "user wants a change to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1687
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1688
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1689
        (self applyChange:changeNr) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1690
            ^ self "/ cancel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1691
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1692
        self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1693
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1694
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1695
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1696
doApplyAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1697
    "user wants all changes to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1698
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1699
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1700
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1701
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1702
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1703
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1704
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1705
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1706
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1707
        multipleApply := lastNr > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1708
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1709
        1 to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1710
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1711
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1712
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1713
        self autoSelectLast
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1714
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1715
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1716
    "Modified: 21.1.1997 / 22:26:30 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1717
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1718
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1719
doApplyClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1720
    "user wants all changes for this class from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1721
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1722
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1723
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1724
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1725
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1726
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1727
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1728
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1729
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1730
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1731
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1732
            multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1733
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1734
            1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1735
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1736
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1737
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1738
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1739
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1740
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1741
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1742
            self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1743
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1744
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1745
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1746
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1747
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1748
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1749
doApplyClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1750
    "user wants all changes for this class from changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1751
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1752
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1753
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1754
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1755
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1756
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1757
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1758
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1759
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1760
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1761
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1762
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1763
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1764
            multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1765
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1766
            changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1767
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1768
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1769
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1770
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1771
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1772
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1773
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1774
            self autoSelect:lastChange.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1775
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1776
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1777
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1778
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1779
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1780
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1781
doApplyFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1782
    "user wants all changes from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1783
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1784
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1785
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1786
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1787
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1788
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1789
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1790
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1791
        multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1792
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1793
        1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1794
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1795
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1796
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1797
        self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1798
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1799
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1800
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1801
doApplyRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1802
    "apply all changes from changeNr to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1803
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1804
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1805
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1806
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1807
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1808
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1809
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1810
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1811
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1812
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1813
        multipleApply := (lastNr - changeNr) > 1.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1814
        AbortAllOperationRequest handle:[:ex |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1815
            ex return
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1816
        ] do:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1817
            changeNr to:lastNr do:[:changeNr |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1818
                changeListView setSelection:changeNr.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1819
                self applyChange:changeNr
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1820
            ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1821
            self autoSelect:self numberOfChanges.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1822
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1823
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1824
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1825
    "Modified: 21.1.1997 / 22:25:29 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1826
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1827
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1828
doApplyToConflictOrEnd
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1829
    "apply all changes from changeNr to either a conflict (i.e. method exists)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1830
     or the end."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1831
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1832
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1833
        |lastNr "{ Class: SmallInteger }"|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1834
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1835
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1836
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1837
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1838
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1839
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1840
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1841
        multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1842
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1843
        changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1844
            | cls sel |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1845
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1846
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1847
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1848
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1849
            ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1850
                (cls includesSelector:sel) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1851
                    self autoSelect:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1852
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1853
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1854
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1855
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1856
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1857
        self autoSelect:self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1858
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1859
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1860
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1861
doBrowse
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1862
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1863
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1864
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1865
	|cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1866
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1867
	cls := self classOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1868
	cls notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1869
	    UserPreferences systemBrowserClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1870
		openInClass:cls
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1871
		selector:(self selectorOfMethodChange:changeNr)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1872
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1873
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1874
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1875
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1876
doBrowseImplementors
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1877
    "open an implementors-browser"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1878
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1879
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1880
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1881
    (changeNr := self theSingleSelection) notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1882
	initial := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1883
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1884
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1885
    selector := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1886
		    request:'Selector to browse implementors of:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1887
		    initialAnswer:(initial ? '').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1888
    selector size ~~ 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1889
	UserPreferences systemBrowserClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1890
	    browseImplementorsMatching:selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1891
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1892
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1893
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1894
doBrowseSenders
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1895
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1896
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1897
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1898
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1899
    (changeNr := self theSingleSelection) notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1900
	initial := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1901
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1902
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1903
    selector := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1904
		    request:'Selector to browse senders of:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1905
		    initialAnswer:(initial ? '').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1906
    selector size ~~ 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1907
	UserPreferences systemBrowserClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1908
	    browseAllCallsOn:selector asSymbol.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1909
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1910
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1911
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1912
doCheckinAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1913
    "first checkin the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1914
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1915
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1916
    |classes answer logTitle checkinInfo|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1917
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1918
"/    self theSingleSelection isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1919
"/        ^ self information:'Only possible if a single change is selected.'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1920
"/    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1921
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1922
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1923
        classes := IdentitySet new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1924
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1925
        self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1926
            | className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1927
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1928
            className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1929
            className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1930
                class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1931
                class isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1932
                    self error:'oops - no class: ', className mayProceed:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1933
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1934
                class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1935
                    class := class theNonMetaclass.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1936
                    (classes includes:class) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1937
                        class isPrivate ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1938
                            (classes includes:class owningClass) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1939
                                answer := self confirmWithCancel:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1940
                                                                    bindWith:class owningClass name allBold) withCRs.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1941
                                answer isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1942
                                answer ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1943
                                    classes add:class owningClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1944
                                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1945
                            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1946
                        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1947
                            classes add:class
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1948
                        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1949
                    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1950
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1951
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1952
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1953
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1954
        classes size == 1 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1955
            logTitle := classes first name.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1956
        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1957
            logTitle := '%1 classes' bindWith:classes size.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1958
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1959
        checkinInfo := SourceCodeManagerUtilities default
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1960
                        getCheckinInfoFor:logTitle
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1961
                        initialAnswer:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1962
        checkinInfo isNil ifTrue:[^ self ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1963
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1964
        changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1965
        classes do:[:eachClass |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1966
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1967
                ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1968
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1969
                           from:1 to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1970
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1971
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1972
        self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1973
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1974
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1975
    "Modified: / 6.9.1995 / 17:11:16 / claus"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1976
    "Modified: / 17.11.2001 / 14:21:13 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1977
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1978
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1979
doCompare
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1980
    "compare change with current system version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1981
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1982
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1983
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1984
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1985
        self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1986
            self compareChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1987
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1988
        self newLabel:''
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1989
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1990
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1991
    "Modified: 24.2.1996 / 19:37:19 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1992
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1993
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1994
doCompareAndCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1995
    "remove all changes, which are equivalent to the current image version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1996
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1997
    |toDelete|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1998
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1999
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2000
    toDelete := OrderedCollection new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2001
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2002
        1 to:self numberOfChanges do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2003
            (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2004
                toDelete add:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2005
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2006
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2007
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2008
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2009
    toDelete reverseDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2010
        self silentDeleteChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2011
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2012
    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2013
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2014
     scroll back a bit, if we are left way behind the list
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2015
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2016
    changeListView firstLineShown > self numberOfChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2017
        changeListView makeLineVisible:self numberOfChanges
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2018
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2019
    self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2020
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2021
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2022
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2023
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2024
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2025
doCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2026
    "compress the change-set; this replaces multiple method-changes by the last
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2027
     (i.e. the most recent) change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2028
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2029
    self compressForClass:nil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2030
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2031
    "Modified: / 29.10.1997 / 01:03:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2032
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2033
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2034
doCompressClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2035
    "compress changes for the selected class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2036
     this replaces multiple method-changes by the last (i.e. the most recent) change."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2037
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2038
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2039
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2040
    self selectedClassNames do:[:classNameToCompress |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2041
        self compressForClass:classNameToCompress.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2042
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2043
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2044
    "Created: / 29.10.1997 / 01:05:16 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2045
    "Modified: / 19.11.2001 / 21:55:17 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2046
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2047
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2048
doCompressSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2049
    "compress changes for the selected class & selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2050
     this replaces multiple method-changes by the last (i.e. the most recent) change."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2051
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2052
    |classSelectorPairs|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2053
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2054
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2055
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2056
    classSelectorPairs := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2057
    self withSelectedChangesDo:[:changeNr |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2058
        | classNameToCompress selector |
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2059
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2060
        classNameToCompress := self classNameOfChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2061
        classNameToCompress notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2062
            selector := self selectorOfMethodChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2063
            selector notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2064
                classSelectorPairs add:(classNameToCompress -> selector).
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2065
            ]
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2066
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2067
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2068
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2069
    classSelectorPairs do:[:pair |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2070
        self compressForClass:pair key selector:pair value.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2071
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2072
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2073
    "Created: / 19.11.2001 / 21:50:59 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2074
    "Modified: / 19.11.2001 / 22:10:08 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2075
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2076
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2077
doDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2078
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2079
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2080
    |rangeEnd rangeStart firstDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2081
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2082
    changeListView selection size <= 5 ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2083
        self withSelectedChangesReverseDo:[:changeNr |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2084
            self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2085
            self autoSelectOrEnd:changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2086
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2087
        self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2088
        ^ self
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2089
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2090
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2091
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2092
        rangeEnd isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2093
            rangeEnd := rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2094
        ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2095
            (changeNr = (rangeEnd + 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2096
                rangeEnd := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2097
            ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2098
                (changeNr = (rangeStart - 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2099
                    rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2100
                ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2101
                    self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2102
                    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2103
                    rangeStart := rangeEnd := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2104
                ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2105
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2106
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2107
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2108
    rangeStart notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2109
        self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2110
        firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2111
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2112
    self autoSelectOrEnd:firstDeleted.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2113
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2114
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2115
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2116
doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2117
    "delete all changes for classes with same namespace as currently selected change"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2118
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2119
    |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2120
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2121
    lastChangeNr := -1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2122
    namespacesToDelete := Set new.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2123
    self withSelectedChangesDo:[:changeNr |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2124
        |namespaceToDelete|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2125
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2126
        namespaceToDelete := self namespaceOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2127
        namespaceToDelete notNil ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2128
            namespacesToDelete add:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2129
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2130
        lastChangeNr := lastChangeNr max:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2131
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2132
    namespacesToDelete isEmpty ifTrue:[^ self].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2133
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2134
    overAllNumDeletedBefore := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2135
    changeListView setSelection:nil.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2136
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2137
    self withExecuteCursorDo:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2138
        namespacesToDelete do:[:namespaceToDelete |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2139
            |numDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2140
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2141
            self 
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2142
                silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2143
                from:lastChangeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2144
                to:(self numberOfChanges).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2145
            numDeletedBefore := self
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2146
                                   silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2147
                                   from:1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2148
                                   to:(lastChangeNr-1).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2149
            lastChangeNr := lastChangeNr - numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2150
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2151
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2152
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2153
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2154
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2155
    self autoSelectOrEnd:lastChangeNr.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2156
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2157
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2158
doDeleteAndSelectPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2159
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2160
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2161
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2162
        self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2163
        self autoSelectOrEnd:changeNr-1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2164
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2165
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2166
    "/mh - don't we need a 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2167
    "/  self setChangeList
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2168
    "/ here?
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2169
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2170
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2171
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2172
doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2173
    "delete all changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2174
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2175
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2176
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2177
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2178
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2179
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2180
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2181
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2182
        classNameToDelete := self classNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2183
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2184
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2185
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2186
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2187
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2188
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2189
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2190
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2191
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2192
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2193
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2194
            |numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2195
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2196
            self silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2197
                                   from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2198
                                     to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2199
            numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2200
                                   silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2201
                                   from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2202
                                   to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2203
            lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2204
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2205
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2206
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2207
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2208
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2209
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2210
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2211
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2212
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2213
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2214
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2215
doDeleteClassAndPrivateClassesAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2216
    "delete all changes with same class and private classes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2217
     as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2218
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2219
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2220
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2221
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2222
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2223
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2224
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2225
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2226
        classNameToDelete := self ownerClassNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2227
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2228
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2229
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2230
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2231
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2232
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2233
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2234
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2235
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2236
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2237
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2238
            | changeNr numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2239
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2240
            classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2241
                changeListView setSelection:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2242
                self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2243
                                       from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2244
                                         to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2245
                numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2246
                                       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2247
                                       from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2248
                                       to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2249
                lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2250
                overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2251
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2252
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2253
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2254
    self setChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2255
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2256
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2257
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2258
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2259
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2260
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2261
doDeleteClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2262
    "delete changes with same class as currently selected change from the beginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2263
     up to the selected change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2264
     Useful to get rid of obsolete changes before a fileout or checkin entry."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2265
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2266
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2267
	|classNameToDelete prevSelection numDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2268
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2269
	classNameToDelete := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2270
	classNameToDelete notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2271
	    prevSelection := changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2272
	    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2273
	    numDeleted := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2274
				silentDeleteChangesFor:classNameToDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2275
				from:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2276
				to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2277
	    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2278
	    self autoSelectOrEnd:(changeNr + 1 - numDeleted)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2279
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2280
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2281
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2282
    "Created: 13.12.1995 / 15:41:58 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2283
    "Modified: 25.5.1996 / 12:26:34 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2284
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2285
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2286
doDeleteClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2287
    "delete rest of changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2288
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2289
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2290
	| classNameToDelete |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2291
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2292
	classNameToDelete := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2293
	classNameToDelete notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2294
	    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2295
	    self silentDeleteChangesFor:classNameToDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2296
				   from:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2297
				     to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2298
	    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2299
	    self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2300
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2301
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2302
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2303
    "Modified: / 18.5.1998 / 14:25:07 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2304
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2305
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2306
doDeleteClassSelectorAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2307
    "delete all changes with same class and selector as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2308
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2309
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2310
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2311
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2312
    classNameSelectorPairsToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2313
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2314
	|className selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2315
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2316
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2317
	selector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2318
	selector notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2319
	    (className notNil and:[selector notNil]) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2320
		classNameSelectorPairsToDelete add:(className -> selector).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2321
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2322
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2323
	lastChangeNr := lastChangeNr max:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2324
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2325
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2326
    overAllNumDeletedBefore := 0.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2327
    changeListView setSelection:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2328
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2329
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2330
	classNameSelectorPairsToDelete do:[:pair |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2331
	    |numDeletedBefore className selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2332
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2333
	    className := pair key.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2334
	    selector  := pair value.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2335
	    self silentDeleteChangesFor:className selector:selector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2336
				   from:lastChangeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2337
				     to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2338
	    numDeletedBefore := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2339
				   silentDeleteChangesFor:className selector:selector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2340
				   from:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2341
				   to:(lastChangeNr-1).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2342
	    lastChangeNr := lastChangeNr - numDeletedBefore.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2343
	    overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2344
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2345
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2346
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2347
    self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2348
    self autoSelectOrEnd:lastChangeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2349
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2350
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2351
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2352
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2353
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2354
doDeleteFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2355
    "delete all changes from 1 to the current"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2356
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2357
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2358
	self deleteChangesFrom:1 to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2359
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2360
	self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2361
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2362
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2363
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2364
doDeleteRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2365
    "delete all changes from current to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2366
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2367
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2368
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2369
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2370
	self autoSelectOrEnd:changeNr-1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2371
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2372
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2373
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2374
doFileoutAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2375
    "first fileOut the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2376
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2377
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2378
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2379
	| className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2380
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2381
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2382
	className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2383
	    class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2384
	    class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2385
		Class fileOutErrorSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2386
		    self warn:('fileout failed: ' , ex description).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2387
		] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2388
		    class fileOut.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2389
		    self doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2390
		].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2391
	    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2392
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2393
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2394
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2395
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2396
    "Modified: 6.9.1995 / 17:11:16 / claus"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2397
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2398
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2399
doMakePatch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2400
    "user wants a change to be made a patch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2401
     - copy it over to the patches file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2402
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2403
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2404
	self makeChangeAPatch:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2405
	self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2406
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2407
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2408
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2409
doMakePermanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2410
    "user wants a change to be made permanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2411
     - rewrite the source file where this change has to go"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2412
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2413
    |yesNoBox|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2414
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2415
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2416
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2417
    yesNoBox := YesNoBox new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2418
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2419
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2420
    yesNoBox okAction:[   |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2421
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2422
                          changeNr := self theSingleSelection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2423
                          changeNr notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2424
                              self makeChangePermanent:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2425
                              self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2426
                          ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2427
                      ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2428
    yesNoBox showAtPointer.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2429
    yesNoBox destroy
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2430
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2431
    "Modified: 7.1.1997 / 23:03:33 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2432
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2433
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2434
doSave
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2435
    "user wants a change to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2436
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2437
    |fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2438
13651
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2439
    fileName := Dialog
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2440
                    requestFileNameForSave:(resources string:'Append change to:')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2441
                    default:(lastSaveFileName ? '')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2442
                    ok:(resources string:'Append')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2443
                    abort:(resources string:'Abort')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2444
                    pattern:'*.chg'.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2445
    fileName isEmptyOrNil ifTrue:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2446
        ^ self
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2447
    ].
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2448
    lastSaveFileName := fileName.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2449
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2450
    self withWriteCursorDo:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2451
        self withSelectedChangesDo:[:changeNr |
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2452
            self appendChange:changeNr toFile:fileName.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2453
            self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2454
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2455
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2456
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2457
    "Modified: / 27-07-2012 / 09:46:14 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2458
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2459
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2460
doSaveClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2461
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2462
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2463
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2464
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2465
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2466
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2467
doSaveClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2468
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2469
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2470
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2471
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2472
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2473
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2474
doSaveClassFrom:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2475
    "user wants changes from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2476
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2477
    |changeNr classNameToSave|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2478
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2479
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2480
    classNameToSave := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2481
    classNameToSave notNil ifTrue:[
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2482
        self saveClass:classNameToSave from:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2483
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2484
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2485
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2486
doSaveClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2487
    "user wants changes for some class from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2488
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2489
    |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2490
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2491
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2492
    self doSaveClassFrom:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2493
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2494
    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2495
    "/ self changeSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2496
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2497
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2498
doSaveRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2499
    "user wants changes from current to end to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2500
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2501
    |changeNr fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2502
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2503
    (changeNr := self theSingleSelection) isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2504
        ^ self information:(resources string:'Only possible if a single change is selected.').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2505
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2506
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2507
    fileName := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2508
                    requestFileNameForSave:(resources string:'Append changes to:')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2509
                    default:(lastSaveFileName ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2510
                    ok:(resources string:'Append')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2511
                    abort:(resources string:'Abort')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2512
                    pattern:'*.chg'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2513
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2514
    fileName notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2515
        lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2516
        self withWriteCursorDo:[
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2517
            changeNr to:(self numberOfChanges) do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2518
                changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2519
                (self appendChange:changeNr toFile:fileName) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2520
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2521
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2522
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2523
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2524
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2525
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2526
    "Modified: / 27-07-2012 / 09:46:09 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2527
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2528
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2529
doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2530
    "reread the changes-file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2531
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2532
    self readChangesFileInBackground:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2533
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2534
    realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2535
	self setChangeList.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2536
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2537
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2538
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2539
doWriteBack
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2540
    "write back the list onto the changes file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2541
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2542
    anyChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2543
        (self writeBackChanges) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2544
            realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2545
                self readChangesFile.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2546
                realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2547
                    self setChangeList
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2548
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2549
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2550
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2551
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2552
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2553
    "Modified: 5.9.1996 / 17:19:46 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2554
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2555
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2556
findClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2557
    "findClass menu action: let user enter a classes name, and select the next change for that class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2558
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2559
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2560
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2561
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2562
        current := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2563
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2564
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2565
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2566
        askForSearch:'Class to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2567
        initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2568
        thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2569
                            |thisClassName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2570
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2571
                            thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2572
                            thisClassName notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2573
                            and:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2574
                                (thisClassName sameAs: searchString)
13440
3414d47da4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13373
diff changeset
  2575
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName caseSensitive:false]]]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2576
                        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2577
        onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2578
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2579
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2580
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2581
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2582
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2583
findFirstForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2584
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2585
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2586
    self findNextForClassStartingAt:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2587
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2588
    "Created: / 20-11-2006 / 16:37:56 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2589
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2590
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2591
findFirstForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2592
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2593
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2594
    self findNextForClass:className startingAt:1
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2595
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2596
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2597
findLastForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2598
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2599
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2600
    self findPreviousForClassStartingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2601
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2602
    "Created: / 20-11-2006 / 16:39:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2603
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2604
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2605
findLastForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2606
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2607
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2608
    self findPreviousForClass:className startingAt:(self numberOfChanges)
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2609
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2610
    "Created: / 20-11-2006 / 16:39:15 / cg"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2611
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2612
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2613
findLastSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2614
    "findLastSnapshot menu action: select the last change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2615
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2616
    "/ lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2617
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2618
    self 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2619
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2620
        startingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2621
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2622
    "Created: / 06-10-2006 / 11:03:39 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2623
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2624
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2625
findNext
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2626
    "findNext menu action: select the next change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2627
     Searches for what the last search was for; i.e. either same class or same selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2628
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2629
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2630
	^ self findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2631
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2632
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2633
	^ self findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2634
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2635
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2636
	^ self findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2637
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2638
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2639
	^ self findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2640
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2641
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2642
    ^ self findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2643
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2644
    "Created: / 18.6.1998 / 22:15:00 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2645
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2646
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2647
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2648
findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2649
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2650
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2651
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2652
    self findNextForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2653
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2654
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2655
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2656
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2657
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2658
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2659
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2660
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2661
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2662
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2663
findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2664
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2665
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2666
    self findNextForClassStartingAt: changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2667
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2668
    "Modified: / 20-11-2006 / 16:37:49 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2669
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2670
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2671
findNextForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2672
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2673
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2674
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2675
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2676
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2677
        findNextForWhich:[:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2678
                |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2679
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2680
                thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2681
                (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2682
                or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2683
                    and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2684
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2685
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2686
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2687
findNextForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2688
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2689
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2690
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2691
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2692
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2693
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2694
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2695
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2696
    cls isNil ifTrue:[^ self].
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2697
    self findNextForClass:cls startingAt:startNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2698
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2699
    "Created: / 20-11-2006 / 16:37:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2700
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2701
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2702
findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2703
    "findNextForSelector menu action: select the next change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2704
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2705
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2706
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2707
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2708
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2709
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2710
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2711
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2712
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2713
    self findNextForWhich: [:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2714
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2715
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2716
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2717
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2718
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2719
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2720
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2721
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2722
findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2723
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2724
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2725
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2726
    self findNextWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2727
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2728
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2729
findNextForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2730
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2731
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2732
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2733
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2734
    "Modified: / 20-11-2006 / 16:34:23 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2735
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2736
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2737
findNextForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2738
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2739
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2740
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2741
        findNextOrPrevious:#next 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2742
        forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2743
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2744
    "Created: / 20-11-2006 / 16:34:06 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2745
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2746
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2747
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2748
    "helper: find and select the next or previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2749
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2750
    self withCursor:Cursor questionMark do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2751
        Object userInterruptSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2752
            self beep.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2753
            ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2754
        ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2755
            |increment nr lastNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2756
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2757
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2758
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2759
            nr := changeNrToStartSearch.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2760
            [ (direction == #previous and:[nr >= 1])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2761
              or:[ direction == #next and:[ nr <= lastNr]] 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2762
            ] whileTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2763
                (aBlock value:nr) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2764
                    changeListView setSelection:nr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2765
                    self changeSelection:nr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2766
                    ^ nr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2767
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2768
                nr := nr + increment.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2769
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2770
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2771
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2772
    self showNotFound.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2773
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2774
    ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2775
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2776
    "Created: / 08-03-2012 / 11:57:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2777
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2778
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2779
findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2780
    "findNextSnapshot menu action: select the next change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2781
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2782
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2783
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2784
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2785
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2786
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2787
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2788
findNextWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2789
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2790
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2791
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2792
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2793
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2794
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2795
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2796
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2797
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2798
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2799
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2800
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2801
    self findNextForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2802
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2803
            |s|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2804
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2805
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2806
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2807
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2808
                or:[ includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2809
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2810
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2811
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2812
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2813
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2814
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2815
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2816
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2817
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2818
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2819
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2820
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2821
findPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2822
    "findPrevious menu action: select the previous change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2823
     Searches for what the last search was for; i.e. either same class or same selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2824
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2825
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2826
	^ self findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2827
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2828
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2829
	^ self findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2830
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2831
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2832
	^ self findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2833
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2834
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2835
	^ self findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2836
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2837
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2838
    ^ self findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2839
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2840
    "Created: / 18.6.1998 / 22:15:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2841
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2842
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2843
findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2844
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2845
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2846
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2847
    self findPreviousForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2848
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2849
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2850
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2851
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2852
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2853
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2854
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2855
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2856
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2857
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2858
findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2859
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2860
12738
fcad7d2eec44 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12704
diff changeset
  2861
    self findPreviousForClassStartingAt:((changeNrShown ? 1) - 1)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2862
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2863
    "Modified: / 20-11-2006 / 16:39:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2864
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2865
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2866
findPreviousForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2867
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2868
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2869
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2870
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2871
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2872
        findPreviousForWhich:
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2873
            [:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2874
                    |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2875
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2876
                    thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2877
                    (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2878
                    or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2879
                        and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2880
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2881
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2882
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2883
findPreviousForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2884
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2885
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2886
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2887
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2888
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2889
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2890
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2891
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2892
    cls isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2893
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2894
    self findPreviousForClass:cls startingAt:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2895
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2896
    "Created: / 20-11-2006 / 16:38:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2897
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2898
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2899
findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2900
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2901
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2902
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2903
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2904
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2905
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2906
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2907
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2908
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2909
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2910
    self findPreviousForWhich:
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2911
	[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2912
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2913
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2914
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2915
		(thisSelector = sel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2916
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2917
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2918
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2919
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2920
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2921
findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2922
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2923
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2924
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2925
    self findPreviousWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2926
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2927
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2928
findPreviousForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2929
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2930
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2931
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2932
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2933
    "Modified: / 06-10-2006 / 11:01:38 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2934
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2935
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2936
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2937
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2938
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2939
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2940
        findNextOrPrevious:#previous 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2941
        forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2942
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2943
    "Created: / 06-10-2006 / 11:01:09 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2944
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2945
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2946
findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2947
    "findPreviousSnapshot menu action: select the previous change which is for a snapShot-image save action"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2948
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2949
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2950
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2951
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2952
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2953
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2954
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2955
findPreviousWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2956
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2957
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2958
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2959
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2960
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2961
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2962
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2963
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2964
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2965
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2966
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2967
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2968
    self findPreviousForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2969
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2970
            |s |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2971
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2972
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2973
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2974
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2975
                or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2976
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2977
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2978
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2979
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2980
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2981
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2982
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2983
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2984
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  2985
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2986
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2987
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2988
findSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2989
    "findSelector menu action: let user enter a selector, and select the next change for that selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2990
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2991
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2992
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2993
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2994
	current := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2995
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2996
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2997
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2998
	askForSearch:'Selector to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2999
	initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3000
	thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3001
			    |thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3002
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3003
			    thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3004
			    (thisSelector = searchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3005
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3006
			]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3007
	onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3008
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3009
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3010
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3011
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3012
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3013
findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3014
    |searchString directionHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3015
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3016
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3017
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3018
    searchString := codeView selection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3019
    searchString size == 0 ifTrue:[searchString := lastSearchString].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3020
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3021
    searchString := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3022
	askForSearchString:'String to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3023
	initialAnswer:(searchString ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3024
	directionInto:(directionHolder := ValueHolder new).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3025
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3026
    searchString size == 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3027
	^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3028
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3029
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3030
    directionHolder value == #backward ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3031
	self findPreviousWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3032
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3033
	self findNextWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3034
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3035
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3036
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3037
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3038
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3039
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3040
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3041
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3042
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3043
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  3044
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3045
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3046
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3047
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3048
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3049
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3050
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3051
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3052
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3053
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3054
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3055
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3056
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3057
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3058
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3059
openSettingsDialog
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3060
    |settingsList|
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3061
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3062
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3063
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3064
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3065
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3066
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3067
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3068
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3069
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3070
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3071
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3072
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3073
    SettingsDialog 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3074
        openWithList:settingsList 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3075
        label:(resources string:'Change Browser Settings').
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3076
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3077
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3078
setEnforcedNameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3079
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3080
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3081
    listOfKnownNameSpaces := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3082
    NameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3083
        allNameSpaces
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3084
            do:[:eachNameSpace |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3085
                listOfKnownNameSpaces add:eachNameSpace name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3086
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3087
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3088
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3089
    Dialog modifyingBoxWith:[:box |
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3090
        keepAsDefaultHolder := true asValue.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3091
        box verticalPanel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3092
            add:((CheckBox 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3093
                    label:(resources string:'Use this as default in the future')) 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3094
                    model:keepAsDefaultHolder).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3095
    ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3096
        nsName := Dialog
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3097
                request:(resources string:'When applying, new classes are created in nameSpace:')
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3098
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3099
                list:listOfKnownNameSpaces.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3100
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3101
    nsName isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3102
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3103
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3104
        applyInOriginalNameSpace value:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3105
        LastEnforcedNameSpace := enforcedNameSpace := nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3106
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3107
        applyInOriginalNameSpace value:false.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3108
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3109
        autoCompare value ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3110
            self doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3111
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3112
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3113
    KeepEnforcedNameSpace := keepAsDefaultHolder value.
11680
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3114
    codeView nameSpaceForDoits:enforcedNameSpace.
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3115
    diffView textViews do:[:each | each nameSpaceForDoits:enforcedNameSpace].
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3116
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3117
    "Modified: / 26-07-2012 / 23:06:23 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3118
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3119
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3120
setEnforcedPackage
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3121
    |pkg listOfKnownPackages|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3122
16207
2a88932c5bbf #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16092
diff changeset
  3123
    listOfKnownPackages := Smalltalk allPackageIDs.
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3124
"/    Smalltalk allClassesDo:[:eachClass |
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3125
"/                                |package|
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3126
"/
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3127
"/                                package := eachClass package.
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3128
"/                                package size > 0 ifTrue:[
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3129
"/                                    listOfKnownPackages add:package
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3130
"/                                ]
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3131
"/                           ].
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3132
    listOfKnownPackages := listOfKnownPackages asNewOrderedCollection sort.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3133
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3134
    pkg := Dialog
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3135
                request:'When applying, changes go into package:'
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3136
                initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3137
                list:listOfKnownPackages.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3138
    pkg size ~~ 0 ifTrue:[
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3139
        enforcedPackage := pkg
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3140
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3141
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3142
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3143
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3144
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3145
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3146
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3147
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3148
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3149
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3150
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3151
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3152
    self class autoSelectNext ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3153
	(changeNr <= self numberOfChanges) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3154
	    changeListView setSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3155
	    self changeSelection:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3156
	    ^ self
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3157
	]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3158
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3159
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3160
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3161
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3162
    "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
  3163
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3164
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3165
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3166
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3167
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3168
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3169
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3170
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3171
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3172
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3173
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3174
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3175
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3176
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3177
    changeNr < last ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3178
	self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3179
    ] ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3180
	last == 0 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3181
	    last := nil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3182
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3183
	changeListView setSelection:last .
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3184
	self changeSelection:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3185
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3186
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  3187
    "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
  3188
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3189
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3190
beep
15136
3899cd488ab4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15116
diff changeset
  3191
    "output an audible beep or bell on my screen device"
3899cd488ab4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15116
diff changeset
  3192
8619
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3193
    UserPreferences current beepInEditor ifTrue:[                
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3194
        super beep
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3195
    ]
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3196
!
35bfffb40f7c beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8587
diff changeset
  3197
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3198
changeChunkAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3199
    ^ (changeInfoList at:index) chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3200
    "/ ^ changeChunks at:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3201
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3202
    "Created: / 01-05-2016 / 18:24:28 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3203
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3204
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3205
changeClassNameAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3206
    ^ (changeInfoList at:index) className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3207
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3208
    "Created: / 01-05-2016 / 18:28:13 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3209
    "Modified: / 01-05-2016 / 19:32:42 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3210
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3211
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3212
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3213
    "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
  3214
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3215
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3216
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3217
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3218
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3219
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3220
    ].
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3221
    (classesNotToBeAutoloaded includes:#all) ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3222
        ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3223
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3224
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3225
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3226
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3227
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3228
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3229
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3230
    ] ifFalse:[
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3231
        answer := Dialog 
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3232
                confirmWithCancel:(resources
15079
ae3432e68a21 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15016
diff changeset
  3233
                    stringWithCRs:'%1 is an autoloaded class.\I can only compare the method''s source if its loaded first.\\Shall the class be loaded now ?'
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3234
                    with:cls name allBold)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3235
                labels:(resources array:#('Cancel' 'No for All' 'No' 'Yes'))
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3236
                values:#(nil #never false true)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3237
                default:4.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3238
        answer isNil ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3239
            "cancel the operation"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3240
            AbortAllOperationRequest raise.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3241
            "not reached"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3242
        ].
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3243
        answer == #never ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3244
            classesNotToBeAutoloaded add:#all.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3245
            ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3246
        ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3247
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3248
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3249
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3250
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3251
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3252
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3253
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3254
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3255
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3256
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3257
    ^ false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3258
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3259
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3260
checkSingleSelectedChange
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3261
    "just a helper, check for a single selection"
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3262
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3263
    |changeNr|
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3264
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3265
    (changeNr := self theSingleSelection) isNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3266
        self information:'Only possible if a single change is selected.'.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3267
        AbortSignal raise.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3268
        ^ nil.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3269
    ].
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3270
    ^ changeNr
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3271
!
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3272
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3273
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3274
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3275
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3276
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3277
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3278
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3279
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3280
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3281
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3282
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3283
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3284
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3285
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3286
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3287
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3288
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3289
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3290
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3291
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3292
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3293
currentSourceForParseTree:parseTree
12845
c8300977f648 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 12825
diff changeset
  3294
    |selector thisClass method mClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3295
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3296
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3297
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3298
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3299
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3300
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3301
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3302
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3303
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3304
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3305
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3306
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3307
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3308
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3309
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3310
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3311
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3312
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3313
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3314
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3315
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3316
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3317
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3318
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3319
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3320
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3321
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3322
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3323
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3324
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3325
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3326
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3327
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3328
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3329
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3330
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3331
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3332
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3333
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3334
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3335
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3336
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3337
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3338
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3339
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3340
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3341
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3342
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3343
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3344
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3345
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3346
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3347
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3348
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3349
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3350
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3351
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3352
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3353
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3354
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3355
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3356
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3357
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3358
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3359
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3360
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3361
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3362
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3363
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3364
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3365
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3366
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3367
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3368
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3369
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3370
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3371
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3372
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3373
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3374
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3375
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3376
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3377
                    ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3378
                        ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3379
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3380
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3381
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3382
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3383
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3384
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3385
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3386
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3387
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3388
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3389
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3390
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3391
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3392
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3393
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3394
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3395
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3396
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3397
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3398
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3399
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3400
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3401
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3402
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3403
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3404
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3405
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3406
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3407
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3408
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3409
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3410
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3411
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3412
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3413
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3414
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3415
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3416
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3417
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3418
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3419
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3420
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3421
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3422
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3423
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3424
            ownerClass isNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3425
                ^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3426
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3427
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3428
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3429
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3430
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3431
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3432
            thisClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3433
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3434
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3435
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3436
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3437
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3438
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3439
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3440
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  3441
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3442
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3443
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3444
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3445
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3446
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3447
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3448
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3449
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3450
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3451
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3452
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3453
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3454
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3455
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3456
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3457
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3458
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3459
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3460
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3461
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3462
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3463
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3464
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3465
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3466
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3467
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3468
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3469
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3470
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3471
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3472
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3473
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3474
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3475
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3476
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3477
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3478
parseExpression:chunk
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3479
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3480
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3481
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3482
parseExpression:text inNameSpace:nameSpace
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3483
    |parser p|
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3484
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3485
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3486
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3487
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3488
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3489
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3490
    parser := Parser for:(ReadStream on:text).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3491
    parser parserFlags allowQualifiedNames:true.
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3492
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3493
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3494
    ] do:[
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3495
        p := parser 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3496
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3497
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3498
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3499
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3500
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3501
    ].
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3502
    ^ p
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3503
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3504
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3505
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3506
    "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
  3507
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3508
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3509
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3510
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3511
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3512
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3513
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3514
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3515
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3516
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3517
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3518
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3519
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3520
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3521
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3522
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3523
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3524
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3525
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3526
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3527
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3528
setChangeList
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3529
    "update the selection-list;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3530
     called after the changeList has been modified"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3531
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3532
    |headerList|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3533
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3534
    headerList := changeInfoList collect:[:info | info headerLine].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3535
    changeListView setList:headerList expandTabs:false redraw:false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3536
    changeListView invalidate.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3537
    self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3538
    
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3539
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3540
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3541
    "Modified: / 01-05-2016 / 19:27:35 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3542
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3543
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3544
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3545
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3546
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3547
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3548
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3549
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3550
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3551
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3552
showNotFound
14483
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3553
    self withCursor:(Cursor cross) do:[
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3554
        self beep.
c46c9ffe64c3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14090
diff changeset
  3555
        Delay waitForMilliseconds:300.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3556
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3557
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3558
    "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
  3559
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3560
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3561
showNumberOfChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3562
    infoHolder value:(resources string:'%1 changes.' with:changeInfoList size).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3563
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3564
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3565
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3566
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3567
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3568
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3569
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3570
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3571
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3572
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3573
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3574
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3575
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3576
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3577
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3578
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3579
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3580
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3581
timeStampPrintStringOf:ts
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3582
    ^ ts printString
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3583
!
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3584
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3585
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3586
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3587
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3588
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3589
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3590
    "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
  3591
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3592
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3593
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3594
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3595
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3596
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3597
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3598
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3599
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3600
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3601
    "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
  3602
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3603
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3604
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3605
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3606
    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
  3607
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3608
    "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
  3609
     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
  3610
    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
  3611
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3612
    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
  3613
        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
  3614
            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
  3615
                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
  3616
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3617
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3618
    ] 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
  3619
        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
  3620
            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
  3621
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3622
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3623
                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
  3624
                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
  3625
                    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
  3626
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3627
                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
  3628
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3629
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3630
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3631
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3632
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3633
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3634
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3635
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3636
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3637
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3638
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3639
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3640
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3641
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3642
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3643
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3644
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3645
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3646
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3647
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3648
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3649
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3650
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3651
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3652
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3653
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3654
    "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
  3655
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3656
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3657
    ^ (changeInfoList at:changeNr) isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3658
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3659
    "Created: / 06-02-1998 / 13:03:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3660
    "Modified: / 01-05-2016 / 19:32:06 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3661
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3662
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3663
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3664
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3665
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3666
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3667
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3668
    (self classNameOfChange:changeNr) isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3669
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3670
         get the chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3671
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3672
        chunk := self changeChunkAt:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3673
        "mhmh - empty ??"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3674
        chunk notNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3675
            (chunk startsWith:'''---') ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3676
                words := chunk asCollectionOfWords.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3677
                words size > 2 ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3678
                    (words at:2) = 'snapshot' ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3679
                        ^ true
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3680
                    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3681
                ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3682
            ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3683
        ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3684
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3685
    ^ false
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3686
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3687
    "Modified: / 01-05-2016 / 18:25:25 / cg"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3688
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3689
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3690
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3691
    "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
  3692
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3693
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3694
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3695
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3696
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3697
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3698
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3699
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3700
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3701
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3702
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3703
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3704
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3705
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3706
            recTree := recTree receiver
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3707
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3708
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3709
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3710
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3711
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3712
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3713
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3714
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3715
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3716
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3717
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3718
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3719
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3720
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3721
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3722
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3723
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3724
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3725
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3726
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3727
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3728
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3729
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3730
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3731
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3732
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3733
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3734
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3735
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3736
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3737
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3738
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3739
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3740
    sel := fullParseTree selector.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3741
    arg1Tree := fullParseTree arg1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  3742
    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3743
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3744
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3745
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3746
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3747
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3748
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3749
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3750
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3751
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3752
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3753
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3754
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3755
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3756
    "Created: / 08-03-2012 / 09:34:04 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3757
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3758
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3759
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3760
    "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
  3761
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3762
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3763
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3764
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3765
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3766
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3767
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3768
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3769
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3770
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3771
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3772
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3773
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3774
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3775
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3776
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3777
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3778
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3779
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3780
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3781
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3782
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3783
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3784
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3785
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3786
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3787
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3788
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3789
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3790
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3791
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3792
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3793
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3794
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3795
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3796
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3797
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3798
    |recTree arg1Tree|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3799
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3800
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3801
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3802
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3803
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3804
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3805
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3806
        arg1Tree := aParseTree arg1.
13663
497ca003a6dc class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13651
diff changeset
  3807
        (arg1Tree notNil and:[arg1Tree isVariable]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3808
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3809
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3810
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3811
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3812
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3813
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3814
    "Created: / 08-03-2012 / 09:36:59 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3815
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3816
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3817
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3818
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3819
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3820
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3821
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3822
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3823
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3824
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3825
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3826
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3827
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3828
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3829
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3830
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3831
            arg2Tree := aParseTree arg2.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  3832
            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3833
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3834
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3835
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3836
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3837
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3838
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3839
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3840
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3841
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3842
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3843
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  3844
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3845
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3846
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3847
     (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
  3848
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3849
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3850
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  3851
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3852
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3853
    (name endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  3854
        name := name copyButLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3855
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3856
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3857
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  3858
    "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
  3859
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3860
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3861
extractSelectorOfMethodChange:changeNr
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3862
    "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
  3863
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3864
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3865
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3866
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3867
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3868
        (self classNameOfChange:changeNr) notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3869
            chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3870
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3871
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3872
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3873
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3874
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3875
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3876
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3877
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3878
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3879
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3880
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3881
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3882
                sel := aParseTree arguments at:1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  3883
                sel isLiteral ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3884
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3885
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3886
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3887
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3888
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3889
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3890
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3891
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3892
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3893
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3894
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3895
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3896
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3897
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3898
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3899
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3900
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3901
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3902
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3903
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3904
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3905
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3906
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3907
    "Created: / 24-11-1995 / 14:30:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3908
    "Modified: / 01-05-2016 / 18:25:39 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3909
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3910
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3911
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3912
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  3913
     (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
  3914
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3915
    |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
  3916
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3917
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3918
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3919
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3920
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3921
    name := self changeClassNameAt:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  3922
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3923
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3924
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  3925
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3926
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3927
    prevMethodDefNr := changeNr.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3928
    [ (changeInfoList at:prevMethodDefNr) isFollowupChange ] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3929
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3930
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3931
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3932
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3933
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3934
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3935
    chunk := self changeChunkAt:prevMethodDefNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3936
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3937
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3938
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3939
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3940
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3941
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3942
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3943
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3944
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3945
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3946
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3947
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3948
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3949
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3950
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  3951
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3952
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3953
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3954
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3955
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3956
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3957
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3958
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3959
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3960
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  3961
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  3962
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3963
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  3964
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3965
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3966
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3967
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3968
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3969
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3970
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3971
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  3972
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3973
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3974
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3975
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3976
        ^ 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
  3977
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3978
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3979
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3980
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3981
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3982
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3983
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3984
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3985
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3986
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3987
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3988
     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
  3989
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3990
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3991
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3992
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3993
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3994
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3995
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3996
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3997
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3998
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3999
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4000
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4001
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4002
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4003
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4004
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4005
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  4006
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4007
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4008
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  4009
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4010
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4011
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4012
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4013
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4014
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4015
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4016
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4017
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4018
     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
  4019
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4020
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  4021
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4022
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4023
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4024
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4025
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4026
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4027
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4028
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4029
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4030
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4031
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4032
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4033
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4034
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4035
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4036
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4037
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4038
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4039
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4040
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4041
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4042
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4043
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4044
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4045
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4046
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4047
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4048
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4049
    "Modified: / 01-05-2016 / 19:29:14 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4050
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4051
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4052
namespaceOfChange:changeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4053
    "return the namespace of a change or nil"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4054
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4055
    |className namespace idx|
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4056
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4057
    className := self classNameOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4058
    className isNil ifTrue:[ ^ nil ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4059
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4060
    idx := className indexOfSubCollection:'::'.
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4061
    idx == 0 ifTrue:[ ^ nil ].
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4062
    namespace := className copyTo:idx-1.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4063
    ^  namespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4064
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4065
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4066
numberOfChanges
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4067
    ^ changeInfoList size
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4068
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4069
    "Created: / 03-12-1995 / 18:15:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4070
    "Modified: / 01-05-2016 / 19:24:05 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4071
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4072
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4073
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4074
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4075
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4076
     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
  4077
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  4078
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4079
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4080
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4081
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4082
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4083
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4084
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4085
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4086
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4087
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4088
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4089
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4090
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4091
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4092
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4093
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4094
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4095
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4096
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4097
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4098
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4099
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4100
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4101
"/        ].
13851
6a1a69cacb7b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
  4102
"/        ^ name copyButLast:6
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4103
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4104
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4105
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4106
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4107
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4108
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4109
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4110
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4111
     - 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
  4112
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4113
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4114
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4115
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4116
    name := self changeClassNameAt:changeNr.
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4117
    name isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4118
        name := self fullClassNameOfChange:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4119
        name isNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4120
            (changeInfoList at:changeNr) className:#nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4121
        ].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4122
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4123
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4124
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4125
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4126
    "Created: / 05-11-2001 / 18:09:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4127
    "Modified: / 01-05-2016 / 19:24:53 / cg"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4128
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4129
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4130
selectorOfMethodChange:changeNr
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4131
    "return a method-changes selector, 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4132
     or nil if it's not a methodChange"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4133
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4134
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4135
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4136
    changeInfoList size >= changeNr ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4137
        sel := (changeInfoList at:changeNr) selector.
15652
788f4c9d0b07 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15450
diff changeset
  4138
        sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4139
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4140
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4141
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4142
    sel notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4143
        (changeInfoList at:changeNr) selector:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4144
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4145
    ^ sel
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4146
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4147
    "Modified: / 01-05-2016 / 19:26:21 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4148
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4149
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4150
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4151
    "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
  4152
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4153
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4154
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4155
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4156
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4157
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4158
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4159
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4160
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4161
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4162
        chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4163
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4164
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4165
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4166
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4167
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4168
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4169
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4170
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4171
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4172
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4173
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4174
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4175
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4176
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4177
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4178
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4179
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4180
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4181
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4182
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4183
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4184
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4185
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4186
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4187
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4188
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4189
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4190
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4191
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4192
    "Created: / 05-09-1996 / 17:11:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4193
    "Modified: / 01-05-2016 / 18:25:53 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4194
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4195
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4196
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4197
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4198
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4199
    |aStream encoding|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4200
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4201
    (changeNr between:1 and:changeInfoList size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4202
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4203
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4204
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4205
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4206
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4207
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4208
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4209
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4210
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4211
        aStream := EncodedStream stream:aStream encoding:encodingIfKnown.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4212
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4213
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4214
    aStream position:((changeInfoList at:changeNr) position)-1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4215
    ^ aStream
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4216
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4217
    "Modified: / 01-05-2016 / 19:24:17 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4218
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4219
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4220
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4221
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4222
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4223
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4224
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4225
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4226
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4227
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4228
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4229
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4230
    "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
  4231
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4232
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4233
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4234
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4235
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4236
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4237
    (info := f info) isNil ifTrue:[
16092
mawalch
parents: 16022
diff changeset
  4238
        self newLabel:'(unaccessible)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4239
    ] ifFalse:[
16092
mawalch
parents: 16022
diff changeset
  4240
        (info modificationTime) > changeFileTimestamp ifTrue:[
mawalch
parents: 16022
diff changeset
  4241
            self newLabel:'(outdated)'.
mawalch
parents: 16022
diff changeset
  4242
            autoUpdate value ifTrue:[
mawalch
parents: 16022
diff changeset
  4243
                self doUpdate
mawalch
parents: 16022
diff changeset
  4244
            ]
mawalch
parents: 16022
diff changeset
  4245
        ] ifFalse:[
mawalch
parents: 16022
diff changeset
  4246
            self newLabel:''
mawalch
parents: 16022
diff changeset
  4247
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4248
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4249
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4250
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4251
    "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
  4252
    "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
  4253
    "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
  4254
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4255
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4256
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4257
    "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
  4258
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4259
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4260
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4261
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4262
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4264
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4265
    "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
  4266
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4267
     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
  4268
     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
  4269
        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
  4270
                '+' -> 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
  4271
                '-' -> 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
  4272
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4273
                '=' -> 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
  4274
                '~' -> 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
  4275
        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
  4276
        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
  4277
                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
  4278
                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
  4279
                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
  4280
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4281
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4282
     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
  4283
     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
  4284
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4285
    |inStream i f askedForEditingClassSource myProcess myPriority myPrioRange|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4286
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4287
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  4288
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4289
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4290
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4291
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4292
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4293
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4294
    (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
  4295
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4296
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4297
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4298
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  4299
    f exists ifFalse:[^ self].
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4300
    inStream := EncodedStream decodedStreamFor:(f readStream).
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  4301
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4302
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  4303
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  4304
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4305
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4306
    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
  4307
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4308
         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
  4309
         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
  4310
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4311
        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
  4312
            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
  4313
            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
  4314
            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
  4315
            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
  4316
        ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4317
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4318
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4319
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4320
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4321
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  4322
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4323
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4324
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4325
            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
  4326
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4327
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4328
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4329
            reader noColoring:(NoColoring == true).
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4330
            
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4331
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4332
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4333
            editingClassSource := reader thisIsAClassSource.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4334
            changeInfoList := reader changeInfo.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4335
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4336
            self showNumberOfChanges.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4337
            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
  4338
        ] 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
  4339
            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
  4340
            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
  4341
                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
  4342
                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
  4343
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4344
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4345
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4346
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4347
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4348
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4349
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4350
    "Modified: / 01-05-2016 / 19:13:09 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4351
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4352
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4353
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4354
    "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
  4355
     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
  4356
     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
  4357
     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
  4358
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4359
     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
  4360
     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
  4361
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4362
    |inFilename inStream outStream stamp encoding tempFilename|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4363
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4364
    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
  4365
        (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
  4366
        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
  4367
            ^ 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
  4368
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4369
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4370
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4371
    inFilename := changeFileName asFilename.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4372
    [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4373
        inStream := inFilename readStream.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4374
    ] 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
  4375
        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
  4376
        ^ 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
  4377
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4378
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4379
        [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4380
            outStream := FileStream newTemporaryIn:inFilename directory.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4381
            tempFilename := outStream fileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4382
        ] on:FileStream openErrorSignal do:[:ex|
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4383
            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
  4384
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4385
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4386
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4387
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4388
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4389
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4390
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4391
        encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4392
            inStream := EncodedStream stream:inStream encoding:encoding.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4393
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4394
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  4395
        self withWriteCursorDo:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4396
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4397
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4398
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4399
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4400
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4401
                outStream close.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4402
                tempFilename remove.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4403
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4404
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4405
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4406
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4407
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4408
                1 to:nChanges do:[:index |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4409
                    inStream position:((changeInfoList at:index) position)-1.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4410
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4411
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4412
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4413
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4414
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4415
                        (stamp := (changeInfoList at:index) timestamp) notNil ifTrue:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4416
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4417
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4418
                        ].
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
  4419
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4420
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4421
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4422
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4423
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4424
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4425
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4426
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4427
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4428
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4429
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4430
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4431
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4432
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4433
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4434
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4435
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4436
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4437
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4438
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4439
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4440
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4441
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4442
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4443
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4444
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4445
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4446
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4447
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4448
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4449
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4450
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4451
                    ]
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
  4452
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4453
                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
  4454
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4455
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4456
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4457
            inFilename renameTo:(inFilename withSuffix:'bak').
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4458
            tempFilename renameTo:changeFileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4459
            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
  4460
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4461
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4462
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4463
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4464
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4465
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4466
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4467
    "Modified: / 02-12-1996 / 22:29:15 / stefan"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4468
    "Modified: / 01-05-2016 / 19:30:34 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4469
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4470
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4471
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4472
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4473
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4474
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4475
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4476
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4477
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4478
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4479
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4480
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4481
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4482
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4483
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4484
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4485
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4486
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4487
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4488
        sawExcla := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4489
        chunk := self changeChunkAt:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4490
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4491
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4492
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4493
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4494
    chunk withoutSeparators isEmpty ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4495
        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
  4496
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4497
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4498
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4499
    fileName := aFileNameOrFileNameString asFilename.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4500
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4501
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4502
        outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4503
    ] on:FileStream openErrorSignal do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4504
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4505
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4506
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4507
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4508
    outStream fileSize = 0 ifTrue:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4509
        encoding := #utf8.
15090
27f730f4fd5b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15087
diff changeset
  4510
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4511
    ] ifFalse:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4512
        encoding := CharacterEncoder guessEncodingOfStream:outStream.
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4513
    ].
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4514
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4515
    encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4516
        outStream := EncodedStream stream:outStream encoding:encoding.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4517
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4518
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4519
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4520
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4521
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4522
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4523
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4524
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4525
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4526
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4527
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4528
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4529
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4530
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4531
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4532
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4533
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4534
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4535
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4536
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4537
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4538
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4539
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4540
    "Modified: / 01-05-2016 / 18:25:00 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4541
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4542
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4543
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
  4544
    "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
  4545
     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
  4546
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4547
    |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
  4548
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4549
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4550
    aStream := self streamForChange:changeNr.
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4551
    aStream isNil ifTrue:[^ false].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4552
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4553
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4554
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4555
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4556
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4557
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4558
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4559
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4560
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4561
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4562
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4563
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4564
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4565
            "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
  4566
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4567
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4568
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4569
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4570
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4571
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4572
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4573
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4574
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4575
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4576
            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
  4577
                "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
  4578
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4579
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4580
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4581
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4582
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4583
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4584
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4585
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4586
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4587
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4588
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4589
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4590
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4591
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4592
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4593
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4594
                            ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4595
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4596
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4597
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4598
                                    methodsForChunk := self changeChunkAt:changeNr.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4599
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4600
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4601
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4602
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4603
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4604
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4605
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4606
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4607
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4608
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4609
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4610
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4611
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4612
                                        orgClassName := className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4613
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4614
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4615
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4616
                                            (ownerName endsWith:$:) ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4617
                                                ownerName := ownerName copyButLast:1.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4618
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4619
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4620
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4621
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4622
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4623
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4624
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4625
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4626
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4627
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4628
                                        changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4629
                                            changeClass := Smalltalk at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4630
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4631
                                        [changeClass isNil] whileTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4632
                                            (NameSpace allNameSpaces
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  4633
                                                contains:[:ns | (nsClass := (ns at:className asSymbol)) notNil])
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4634
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4635
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4636
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4637
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4638
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4639
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4640
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4641
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4642
                                            className := Dialog
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4643
                                                            request:'No class ''' , className , ''' for change. Add to which class? (enter empty string to skip this change)'
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4644
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4645
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4646
                                            className isNil ifTrue:[
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4647
                                                AbortAllOperationRequest raise.
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4648
                                            ].
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4649
                                            className isEmpty ifTrue:[
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4650
                                                ^ false
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4651
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4652
                                            alternativeClass := Smalltalk classNamed:className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4653
                                            alternativeClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4654
                                                changeClass := alternativeClass
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4655
                                            ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4656
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4657
                                        methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4658
                                        methodsForChunk := changeClass name , methodsForChunk.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4659
                                    ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4660
                                    reader := Compiler evaluate:methodsForChunk notifying:self.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4661
                                    reader fileInFrom:aStream notifying:self passChunk:false single:true.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4662
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4663
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4664
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4665
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4666
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4667
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4668
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4669
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4670
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4671
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4672
    "/ 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
  4673
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4674
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4675
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4676
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4677
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4678
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4679
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4680
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4681
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4682
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4683
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  4684
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4685
    "Modified: / 01-05-2016 / 18:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4686
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4687
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4688
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4689
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4690
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4691
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4692
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4693
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4694
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4695
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4696
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4697
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4698
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4699
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4700
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4701
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4702
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  4703
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4704
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4705
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4706
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4707
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4708
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4709
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4710
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4711
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4712
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4713
compareChange:changeNr
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4714
    "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
  4715
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4716
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4717
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4718
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4719
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4720
    "compare a change with current version.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4721
     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
  4722
     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
  4723
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4724
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource outcome showDiff d selector isLoaded beep superClass thisClassSym varsHere varsInChange addedVars removedVars
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4725
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4726
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4727
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4728
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4729
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  4730
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  4731
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  4732
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4733
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4734
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4735
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4736
        chunk := self changeChunkAt:changeNr.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4737
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4738
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4739
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4740
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4741
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  4742
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4743
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4744
        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
  4745
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4746
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4747
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4748
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4749
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4750
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4751
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4752
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4753
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4754
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4755
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4756
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4757
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4758
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4759
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4760
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4761
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4762
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4763
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4764
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4765
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4766
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4767
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4768
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4769
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4770
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4771
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4772
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4773
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4774
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4775
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4776
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4777
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4778
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4779
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4780
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4781
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4782
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4783
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4784
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4785
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4786
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4787
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4788
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4789
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4790
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4791
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4792
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4793
                        (selector endsWith:':privateIn:') ifTrue:[
11475
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  4794
                            Parser undefinedVariableError catch:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  4795
                                ownerClass := (parseTree arguments at:5) evaluate.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  4796
                                ownerClass isBehavior ifTrue:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  4797
                                    thisClass := ownerClass privateClassesAt:thisClassSym.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  4798
                                ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4799
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4800
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4801
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4802
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4803
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4804
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4805
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4806
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4807
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4808
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4809
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4810
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4811
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4812
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4813
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4814
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4815
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4816
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4817
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4818
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4819
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4820
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  4821
                                            ((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
  4822
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4823
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4824
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4825
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4826
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4827
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4828
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4829
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4830
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4831
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4832
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4833
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4834
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4835
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  4836
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4837
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4838
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4839
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4840
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4841
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4842
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4843
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4844
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4845
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4846
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4847
                                        isSame := false.
12825
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  4848
                                        addedVars := varsInChange reject:[:eachVar | (varsHere includes:eachVar)].
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  4849
                                        removedVars := varsHere reject:[:eachVar | (varsInChange includes:eachVar)].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4850
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4851
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4852
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4853
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4854
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4855
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4856
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4857
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4858
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4859
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4860
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4861
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4862
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4863
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4864
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4865
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4866
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4867
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4868
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4869
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4870
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4871
    ] ifTrue:[
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4872
        Class nameSpaceQuerySignal 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4873
            answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4874
            do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4875
                parseTree := self parseExpression:chunk.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4876
            ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4877
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4878
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4879
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4880
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4881
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4882
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4883
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4884
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4885
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4886
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4887
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4888
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4889
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4890
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4891
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4892
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4893
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4894
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4895
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4896
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4897
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4898
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4899
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4900
                thisClass notNil ifTrue:[
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4901
                (thisClass isKindOf:UndefinedVariable) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4902
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4903
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4904
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4905
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4906
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4907
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4908
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4909
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
6820
4e8815b9e661 Do not autoload class when comparing changes.
Stefan Vogel <sv@exept.de>
parents: 6682
diff changeset
  4910
                        owner := Smalltalk loadedClassNamed:ownerName.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4911
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4912
                            self checkClassIsLoaded:owner.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4913
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4914
                    ].
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4915
                    thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4916
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4917
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4918
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4919
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4920
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4921
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4922
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4923
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4924
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4925
                            cat := parseTree arg1 evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4926
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4927
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4928
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4929
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4930
                    isSame := self 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4931
                                compareMethodSource:newSource 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4932
                                withVersionInClass:thisClass 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4933
                                into:[:outcomeResult :beepResult :oldSourceResult| 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4934
                                    outcome := outcomeResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4935
                                    beep := beepResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4936
                                    oldSource := oldSourceResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4937
                                ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4938
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4939
                    isSame isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4940
                        showDiff := false.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4941
                    ] ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4942
                        showDiff := isSame not.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4943
                    ].
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  4944
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4945
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4946
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  4947
                            d := DiffCodeView
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4948
                                    openOn:oldSource label:(resources string:'Current version (in image)')
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  4949
                                    and:newSource label:(resources string:'Change version').
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4950
                            d label:'method differences'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4951
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4952
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4953
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4954
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4955
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4956
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4957
                ]
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4958
            ]] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4959
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4960
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4961
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4962
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4963
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4964
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4965
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4966
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4967
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4968
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4969
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4970
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4971
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4972
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4973
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4974
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4975
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4976
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4977
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4978
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  4979
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4980
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  4981
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4982
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  4983
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4984
    "Modified: / 01-05-2016 / 18:25:32 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4985
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  4986
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4987
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4988
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4989
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4990
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4991
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4992
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  4993
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4994
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4995
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4996
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4997
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4998
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4999
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5000
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5001
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5002
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5003
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5004
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5005
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5006
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5007
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5008
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5009
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5010
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5011
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5012
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5013
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5014
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5015
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5016
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5017
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5018
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5019
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5020
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5021
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5022
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5023
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5024
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5025
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5026
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5027
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5028
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5029
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5030
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5031
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5032
compareMethodSource:newSource withVersionInClass:thisClass into:aThreeArgBlock
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5033
    "returns true/false/nil if same,different,undecided;
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5034
     also provides a message and a beep-boolean via the passed in block"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5035
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5036
    |parser sel oldMethod oldSource outcome t1 t2 isLoaded|
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5037
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5038
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5039
    do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5040
        parser := Parser parseMethod:newSource in:thisClass.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5041
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5042
    (parser isNil or:[parser == #Error]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5043
        outcome := 'Change is unparsable (parse error).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5044
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5045
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5046
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5047
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5048
    sel := parser selector.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5049
    oldMethod := thisClass compiledMethodAt:sel.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5050
    oldMethod isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5051
        (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5052
            outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5053
        ] ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5054
            outcome := 'Method does not exist.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5055
        ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5056
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5057
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5058
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5059
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5060
    oldSource := oldMethod source.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5061
    oldSource isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5062
        outcome := 'No source for compare.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5063
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5064
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5065
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5066
    (oldSource = newSource) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5067
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5068
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5069
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5070
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5071
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5072
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5073
    "/ compare for tabulator <-> space changes
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5074
    "/ before showing diff ...
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5075
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5076
    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5077
    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5078
    t1 = t2 ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5079
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5080
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5081
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5082
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5083
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5084
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5085
    "/ check if only historyLine diffs
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5086
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5087
    (HistoryManager notNil
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5088
    and:[HistoryManager isActive]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5089
        (HistoryManager withoutHistoryLines:newSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5090
        =
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5091
        (HistoryManager withoutHistoryLines:oldSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5092
        ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5093
            outcome := 'Same source (history only)'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5094
            aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5095
            ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5096
        ]
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5097
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5098
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5099
    outcome := 'Source changed.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5100
    aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5101
    ^ false.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5102
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5103
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5104
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5105
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5106
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5107
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5108
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5109
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5110
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5111
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5112
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5113
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5114
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5115
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5116
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5117
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5118
                    ^ 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
  5119
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5120
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5121
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5122
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5123
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5124
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5125
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5126
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5127
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5128
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5129
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5130
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5131
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5132
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5133
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5134
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5135
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5136
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5137
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5138
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5139
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5140
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5141
                ^ 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
  5142
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5143
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5144
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5145
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5146
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5147
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5148
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5149
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5150
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5151
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5152
     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
  5153
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5154
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5155
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5156
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5157
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5158
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5159
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5160
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5161
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5162
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5163
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5164
     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
  5165
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5166
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5167
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5168
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5169
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5170
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5171
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5172
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5173
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5174
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5175
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  5176
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5177
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5178
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5179
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5180
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5181
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5182
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5183
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5184
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5185
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5186
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5187
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5188
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5189
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5190
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5191
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5192
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5193
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5194
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5195
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5196
        str := WriteStream on:String new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5197
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5198
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5199
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5200
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5201
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5202
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5203
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5204
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5205
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5206
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5207
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5208
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5209
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5210
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5211
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5212
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5213
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5214
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5215
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5216
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5217
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5218
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5219
            numChanges to:1 by:-1 do:[:changeNr |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5220
                aStream position:((changeInfoList at:changeNr) position)-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5221
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5222
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5223
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5224
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5225
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5226
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5227
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5228
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5229
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5230
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5231
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5232
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5233
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5234
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5235
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5236
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5237
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5238
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5239
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5240
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5241
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5242
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5243
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5244
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5245
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5246
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5247
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5248
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5249
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5250
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5251
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5252
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5253
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5254
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5255
                                ]
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5256
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5257
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5258
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5259
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5260
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5261
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5262
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5263
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5264
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5265
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5266
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5267
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5268
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5269
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5270
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5271
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5272
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5273
                                types at:changeNr put:#removeSelector
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5274
                            ] on:Parser parseErrorSignal do:[:ex|
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5275
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5276
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5277
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5278
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5279
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5280
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5281
                            (chunk startsWith:snapshotPrefix) ifTrue:[
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  5282
                                str := chunk readStream position:snapshotNameIndex-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5283
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5284
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5285
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5286
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5287
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5288
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5289
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5290
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5291
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5292
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5293
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5294
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5295
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5296
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5297
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5298
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5299
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5300
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5301
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5302
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5303
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5304
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5305
         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
  5306
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5307
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5308
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5309
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5310
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5311
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5312
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5313
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5314
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5315
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5316
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5317
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5318
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5319
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5320
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5321
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5322
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5323
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5324
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5325
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5326
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5327
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5328
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5329
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5330
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5331
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5332
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5333
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5334
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5335
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5336
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5337
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5338
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5339
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5340
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5341
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5342
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5343
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5344
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5345
        (deleteSet size > 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5346
            changeListView setSelection:nil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5347
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5348
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5349
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5350
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5351
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5352
            self setChangeList.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5353
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5354
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5355
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5356
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5357
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5358
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5359
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5360
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5361
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5362
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5363
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5364
    "Created: / 19-11-2001 / 22:03:42 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5365
    "Modified: / 01-05-2016 / 19:23:54 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5366
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5367
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5368
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5369
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5370
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5371
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5372
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5373
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5374
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5375
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5376
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  5377
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5378
    stop to:start by:-1 do:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5379
	self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5380
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  5381
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5382
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5383
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5384
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5385
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5386
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5387
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  5388
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5389
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5390
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5391
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5392
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5393
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5394
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5395
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5396
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5397
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5398
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5399
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5400
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5401
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5402
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5403
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5404
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  5405
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5406
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5407
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5408
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5409
"/    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5410
"/    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5411
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5412
"/    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5413
"/    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5414
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5415
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5416
    "Modified: / 01-05-2016 / 19:20:40 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5417
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5418
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5419
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
  5420
    "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
  5421
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5422
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5423
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5424
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5425
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5426
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5427
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5428
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5429
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5430
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5431
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5432
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5433
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5434
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5435
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5436
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5437
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5438
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5439
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5440
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5441
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5442
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5443
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5444
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5445
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5446
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5447
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5448
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5449
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5450
	    (self selectorOfMethodChange:index) == selector ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5451
		self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5452
		numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5453
	    ]
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5454
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5455
	index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5456
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5457
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5458
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5459
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5460
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5461
    "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
  5462
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5463
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5464
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5465
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5466
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5467
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5468
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5469
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5470
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5471
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5472
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5473
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5474
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5475
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5476
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5477
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5478
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5479
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5480
silentDeleteChangesForNamespace:aNamespace from:start to:stop
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5481
    "delete changes for a given namespace in a range.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5482
     Return the number of deleted changes."
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5483
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5484
    |thisNamespace index numDeleted|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5485
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5486
    numDeleted := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5487
    index := stop.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5488
    [index >= start] whileTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5489
        thisNamespace := self namespaceOfChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5490
        thisNamespace = aNamespace ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5491
            self silentDeleteChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5492
            numDeleted := numDeleted + 1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5493
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5494
        index := index - 1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5495
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5496
    ^ numDeleted
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5497
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5498
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5499
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5500
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5501
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5502
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5503
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5504
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5505
"/    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5506
"/    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5507
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5508
"/    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5509
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5510
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5511
    "Created: / 07-03-1997 / 16:28:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5512
    "Modified: / 26-02-1998 / 18:20:48 / stefan"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5513
    "Modified: / 01-05-2016 / 19:20:59 / cg"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5514
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5515
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5516
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5517
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5518
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5519
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5520
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5521
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5522
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5523
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5524
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5525
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5526
    |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
  5527
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5528
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5529
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5530
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5531
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5532
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5533
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5534
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5535
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5536
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5537
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5538
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5539
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5540
        chunk := self changeChunkAt:changeNr.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5541
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5542
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5543
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5544
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5545
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5546
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5547
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5548
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5549
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5550
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5551
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5552
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5553
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5554
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5555
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5556
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5557
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5558
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  5559
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5560
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5561
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5562
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5563
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5564
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5565
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5566
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5567
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5568
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5569
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5570
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5571
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5572
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5573
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5574
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5575
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5576
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5577
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5578
                        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
  5579
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5580
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5581
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5582
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5583
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5584
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5585
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5586
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5587
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5588
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5589
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5590
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5591
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5592
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5593
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5594
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5595
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5596
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5597
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5598
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5599
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  5600
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5601
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5602
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5603
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5604
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5605
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5606
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5607
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5608
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5609
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5610
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5611
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5612
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5613
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5614
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5615
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5616
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5617
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5618
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5619
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5620
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5621
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5622
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5623
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5624
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5625
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5626
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5627
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5628
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5629
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5630
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5631
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5632
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5633
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5634
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5635
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5636
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5637
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5638
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5639
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5640
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5641
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5642
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5643
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5644
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5645
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5646
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5647
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5648
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5649
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5650
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5651
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5652
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5653
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5654
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5655
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5656
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5657
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5658
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5659
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5660
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5661
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5662
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5663
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5664
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5665
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5666
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5667
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5668
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5669
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5670
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5671
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5672
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5673
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5674
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5675
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5676
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5677
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5678
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  5679
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5680
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5681
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5682
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5683
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5684
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5685
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5686
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5687
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5688
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5689
    "Modified: / 01-05-2016 / 18:26:01 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5690
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5691
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5692
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5693
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5694
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5695
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5696
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5697
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5698
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5699
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5700
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5701
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5702
                          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
  5703
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5704
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5705
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5706
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5707
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5708
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5709
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5710
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5711
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5712
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5713
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5714
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5715
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5716
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5717
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5718
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5719
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5720
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  5721
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5722
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5723
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5724
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5725
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5726
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5727
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5728
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  5729
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5730
    anyChanges ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5731
	self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5732
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5733
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5734
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  5735
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5736
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5737
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5738
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5739
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5740
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5741
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5742
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5743
    searchString := self
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5744
        askForSearchString:msg
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5745
        initialAnswer:initial
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5746
        directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5747
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5748
    searchString isNil ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5749
        ^ cancelBlock value
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5750
    ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5751
    directionHolder value == #first ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5752
        self findFirstForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5753
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5754
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5755
    directionHolder value == #last ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5756
        self findLastForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5757
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5758
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5759
    
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5760
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5761
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5762
    directionHolder value == #backward ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5763
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5764
            changeNrShown := self numberOfChanges.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5765
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5766
        self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5767
    ] ifFalse:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5768
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5769
            changeNrShown := 0.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5770
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5771
        self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5772
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5773
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5774
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5775
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5776
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5777
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5778
    |searchString direction|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5779
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5780
    direction := #forward.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5781
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5782
    "/ take a normal request box, but add an additional 'previous' button
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5783
    Dialog modifyingBoxWith:[:box |
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5784
        |nextButton prevButton firstButton lastButton|
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5785
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5786
        nextButton := box okButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5787
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5788
        firstButton := Button label:(resources string:'First').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5789
        firstButton action:[direction := #first. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5790
        box addButton:firstButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5791
        
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5792
        lastButton := Button label:(resources string:'Last').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5793
        lastButton action:[direction := #last. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5794
        box addButton:lastButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5795
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5796
        prevButton := Button label:(resources string:'Previous').
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5797
        prevButton action:[direction := #backward. box okPressed.].
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5798
        box addButton:prevButton after:nextButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  5799
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5800
        nextButton label:(resources string:'Next').
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5801
    ] do:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5802
        searchString := Dialog
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5803
                request:msg
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5804
                initialAnswer:initial
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5805
                onCancel:nil.
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5806
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5807
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5808
    searchString isNil ifTrue:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  5809
        ^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5810
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5811
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5812
    ^ searchString
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5813
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5814
    "
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5815
     self new askForSearchString:'foo' initialAnswer:'bla' directionInto:(false asValue)
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  5816
    "
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5817
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  5818
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5819
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5820
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5821
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5822
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5823
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5824
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5825
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5826
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  5827
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5828
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5829
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5830
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5831
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5832
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  5833
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5834
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5835
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5836
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5837
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5838
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5839
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5840
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5841
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5842
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5843
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5844
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5845
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5846
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5847
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5848
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5849
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5850
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5851
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5852
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5853
    self changeListSelectionHolder value:lineNumbers.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5854
    
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  5855
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5856
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5857
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5858
        changeNrShown := nil.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5859
        infoHolder value:nil.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5860
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  5861
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  5862
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5863
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5864
    self sensor
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5865
        enqueueMessage:#updateSourceCodeAfterChangedSelection for:self arguments:nil;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5866
        enqueueMessage:#updateInfoAfterChangedSelection for:self arguments:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5867
^ self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  5868
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5869
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  5870
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  5871
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5872
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5873
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  5874
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  5875
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5876
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  5877
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  5878
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5879
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5880
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5881
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5882
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5883
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5884
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5885
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5886
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5887
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5888
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5889
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5890
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5891
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5892
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5893
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5894
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  5895
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  5896
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5897
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5898
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  5899
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  5900
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  5901
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  5902
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5903
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5904
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5905
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  5906
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5907
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5908
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5909
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  5910
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5911
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5912
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5913
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5914
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5915
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5916
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5917
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5918
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5919
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5920
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5921
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5922
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  5923
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  5924
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  5925
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  5926
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
  5927
    "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
  5928
     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
  5929
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5930
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5931
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5932
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5933
    className isNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5934
        ^ exceptionBlock value:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5935
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5936
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5937
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5938
    (className endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  5939
        className := className copyButLast:6.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5940
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5941
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  5942
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5943
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5944
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5945
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5946
            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
  5947
                "/ 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
  5948
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5949
                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
  5950
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5951
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5952
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5953
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  5954
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5955
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5956
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  5957
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5958
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5959
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5960
        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
  5961
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5962
        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
  5963
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5964
    (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
  5965
        "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
  5966
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5967
            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
  5968
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5969
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5970
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5971
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  5972
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5973
    cls isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5974
        ^ exceptionBlock value:className
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5975
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5976
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5977
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5978
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5979
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5980
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  5981
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5982
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5983
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  5984
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5985
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5986
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5987
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5988
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  5989
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5990
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5991
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  5992
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  5993
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5994
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5995
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5996
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5997
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5998
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5999
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6000
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6001
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6002
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6003
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6004
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6005
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6006
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6007
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6008
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6009
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6010
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6011
            lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6012
            self withWriteCursorDo:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6013
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6014
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6015
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6016
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6017
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6018
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6019
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6020
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6021
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6022
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6023
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6024
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6025
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6026
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  6027
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6028
    "Modified: / 27-07-2012 / 09:46:04 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6029
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6030
11477
95c469c33ab3 added: #selectionChanged
Stefan Vogel <sv@exept.de>
parents: 11476
diff changeset
  6031
selectionChanged
12946
e6e3c7681456 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12845
diff changeset
  6032
    self halt:'should not be here'
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6033
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6034
    "Created: / 03-01-2012 / 15:26:36 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6035
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6036
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6037
updateInfoAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6038
    "update the info label"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6039
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6040
    |selection lineNr className nClassChanges nMethodChanges uniqueSelectors
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6041
     lastLineNr countAfterLast moreInfo|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6042
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6043
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6044
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6045
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6046
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6047
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6048
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6049
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6050
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6051
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6052
        infoHolder value:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6053
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6054
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6055
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6056
    "/
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6057
    "/ now, this info is computed so fast,
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6058
    "/ we can do it each time the selection changes
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6059
    "/ (can we?)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6060
    className := self realClassNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6061
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6062
    nClassChanges := nMethodChanges := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6063
    uniqueSelectors := Set new.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6064
    lastLineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6065
    countAfterLast := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6066
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6067
    "/ count them all
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6068
    1 to:changeInfoList size do:[:i |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6069
        |sel|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6070
        
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6071
        (self realClassNameOfChange:i) = className ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6072
            lastLineNr := i.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6073
            i > lineNr ifTrue:[ countAfterLast := countAfterLast + 1 ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6074
            
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6075
            nClassChanges := nClassChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6076
            (sel := self selectorOfMethodChange:i) notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6077
                uniqueSelectors add:sel.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6078
                nMethodChanges := nMethodChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6079
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6080
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6081
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6082
    lastLineNr == lineNr ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6083
        moreInfo := resources string:'. This is the last for this class.'.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6084
    ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6085
        countAfterLast > 0 ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6086
            moreInfo := resources string:'. %1 more for this class.' with:countAfterLast.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6087
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6088
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6089
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6090
    infoHolder value:(resources 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6091
                        string:'%1 changes. %2 for %3 (%4 methods / %5 selectors)%6'
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6092
                        with:(changeInfoList size)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6093
                        with:nClassChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6094
                        with:className
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6095
                        with:nMethodChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6096
                        with:uniqueSelectors size
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6097
                        with:moreInfo).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6098
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6099
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6100
updateSourceCodeAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6101
    "show a change in the codeView"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6102
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6103
    |selection lineNr chunk|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6104
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6105
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6106
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6107
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6108
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6109
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6110
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6111
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6112
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6113
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6114
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6115
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6116
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6117
    "/ display the changes code
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6118
    chunk := self sourceOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6119
    chunk isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6120
        codeView initializeDoITAction.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6121
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6122
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6123
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6124
    codeView contents:chunk.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6125
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6126
    codeView doItAction:[:theCode |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6127
        |clsName cls|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6128
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6129
        clsName := self classNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6130
        clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6131
            clsName := clsName asSymbolIfInterned.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6132
            clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6133
                cls := Smalltalk at:clsName ifAbsent:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6134
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6135
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6136
        Compiler
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6137
            evaluate:theCode
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6138
            in:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6139
            receiver:cls
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6140
            notifying:self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6141
            logged:true
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6142
            ifFail:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6143
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6144
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6145
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6146
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6147
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6148
    self showingDiffs value ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6149
        self withWaitCursorDo:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6150
            AbortOperationRequest catch:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6151
                self updateDiffViewFor:changeNrShown.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6152
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6153
        ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6154
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6155
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6156
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6157
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6158
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6159
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6160
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6161
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6162
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6163
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6164
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6165
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6166
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6167
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6168
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6169
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6170
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6171
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6172
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6173
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6174
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6175
changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6176
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6177
    ^ changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6178
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6179
    "Modified: / 01-05-2016 / 19:10:52 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6180
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6181
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6182
changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6183
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6184
    ^ changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6185
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6186
    "Modified: / 01-05-2016 / 19:10:47 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6187
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6188
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6189
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6190
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6191
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6192
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6193
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6194
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6195
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6196
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6197
changeHeaderLines
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6198
self halt.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6199
   ^ changeHeaderLines
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6200
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6201
    "Modified: / 01-05-2016 / 19:10:41 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6202
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6203
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6204
changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6205
    ^ changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6206
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6207
    "Created: / 01-05-2016 / 19:10:05 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6208
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6209
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6210
changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6211
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6212
    ^ changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6213
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6214
    "Modified: / 01-05-2016 / 19:10:24 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6215
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6216
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6217
changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6218
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6219
    ^ changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6220
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6221
    "Modified: / 01-05-2016 / 19:10:29 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6222
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6223
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6224
changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6225
self halt.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6226
    ^ changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6227
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6228
    "Modified: / 01-05-2016 / 19:10:34 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6229
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6230
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6231
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6232
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6233
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6234
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6235
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6236
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6237
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6238
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6239
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6240
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6241
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6242
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6243
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6244
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6245
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6246
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6247
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6248
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6249
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6250
    "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
  6251
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6252
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6253
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6254
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6255
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6256
    "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
  6257
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6258
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6259
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6260
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6261
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6262
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6263
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6264
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6265
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6266
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6267
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6268
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6269
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6270
                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
  6271
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6272
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6273
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6274
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6275
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6276
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6277
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6278
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6279
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6280
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6281
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6282
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6283
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6284
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6285
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6286
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6287
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6288
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6289
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6290
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6291
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6292
    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
  6293
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6294
            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
  6295
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6296
            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
  6297
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6298
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6299
    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
  6300
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6301
            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
  6302
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6303
            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
  6304
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6305
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6306
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6307
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6308
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6309
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6310
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6311
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6312
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6313
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6314
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6315
    "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
  6316
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6317
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6318
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6319
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6320
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6321
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6322
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6323
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6324
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6325
    changeHeaderLines add:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6326
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6327
    "Modified: / 01-05-2016 / 19:07:49 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6328
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6329
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6330
headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6331
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6332
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6333
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6334
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6335
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6336
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6337
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6338
    timeStampInfo notNil ifTrue:[
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  6339
        entry colAt:4 put:(browser timeStampPrintStringOf:timeStampInfo).
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6340
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6341
    ^ entry
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6342
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6343
    "Created: / 01-05-2016 / 19:07:20 / cg"
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  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
processChunk
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6347
    |info|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6348
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6349
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6350
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6351
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6352
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6353
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6354
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6355
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6356
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6357
    changeInfo add:(info := 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6358
                        ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6359
                            position:chunkPosition chunk:chunkText className:nil selector:nil headerLine:nil
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6360
                            timestamp:timeStampInfo isFollowupChange:false).
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6361
"/    changeChunks add:chunkText.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6362
"/    changeClassNames add:nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6363
"/    changePositions add:chunkPosition.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6364
"/    changeTimeStamps add:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6365
"/    changeIsFollowupMethodChange add:false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6366
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6367
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6368
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6369
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6370
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6371
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6372
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6373
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6374
            [
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6375
                changeInfo removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6376
"/                changeChunks removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6377
"/                changeClassNames removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6378
"/                changePositions removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6379
"/                changeTimeStamps removeLast.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6380
"/                changeIsFollowupMethodChange removeLast.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6381
            ]
6530
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
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6384
    changeString notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6385
        "/ self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6386
        info headerLine:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6387
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6388
        headerLine notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6389
            changeHeaderLines add:headerLine
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6390
            info headerLine:headerLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6391
        ]
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6392
    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6393
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6394
    "Modified: / 01-05-2016 / 19:13:59 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6395
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6396
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6397
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6398
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6399
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6400
    |askedForEditingClassSource changeClass category anyMethod
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6401
     sel p rec clsName done first text methodPos
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6402
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo methodSelector nameAndClass
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6403
     info|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6404
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6405
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6406
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6407
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6408
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6409
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6410
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6411
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6412
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6413
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6414
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6415
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6416
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6417
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6418
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6419
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6420
    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
  6421
    (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
  6422
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6423
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6424
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6425
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6426
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6427
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6428
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6429
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6430
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6431
                classCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6432
                changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6433
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6434
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6435
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6436
                    methodCategoryChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6437
                    changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6438
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6439
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6440
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6441
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6442
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6443
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6444
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6445
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6446
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6447
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6448
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6449
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6450
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6451
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6452
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6453
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6454
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6455
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6456
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6457
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6458
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6459
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6460
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6461
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6462
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6463
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6464
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6465
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6466
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6467
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6468
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6469
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6470
        changeDelta := ' '.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  6471
        methodPos := inStream position + 1.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6472
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6473
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6474
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6475
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6476
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6477
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6478
            first ifFalse:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6479
                info := ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6480
                            position:methodPos chunk:chunkText className:clsName 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6481
                            selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6482
                changeInfo add:info.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6483
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6484
"/                changeChunks add:chunkText.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6485
"/                changeClassNames add:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6486
"/                changePositions add:methodPos.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6487
"/                changeTimeStamps add:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6488
"/                changeIsFollowupMethodChange add:true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6489
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6490
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6491
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6492
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6493
            ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6494
"/                changeClassNames at:changeClassNames size put:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6495
                changeInfo last className:clsName
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6496
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6497
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6498
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6499
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6500
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6501
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6502
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6503
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6504
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6505
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6506
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6507
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6508
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6509
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6510
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6511
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6512
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6513
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6514
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6515
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6516
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6517
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6518
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6519
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6520
                    methodChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6521
                        p := Parser
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6522
                                 parseMethodSpecification:text
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6523
                                 in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6524
                                 ignoreErrors:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6525
                                 ignoreWarnings:true.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6526
                        (p notNil and:[p ~~ #Error]) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6527
                            methodSelector := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6528
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6529
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6530
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6531
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6532
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6533
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6534
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6535
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6536
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6537
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6538
                    changeType := '{ ' , category , ' }'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6539
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6540
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6541
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6542
                autoCompare value ifTrue:[
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6543
                    changeDelta := ChangeDeltaInformation changeDeltaFor:text changeClass:changeClass selector:methodSelector.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6544
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6545
            ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6546
            changeInfo last headerLine:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo).
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6547
"/            self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6548
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6549
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6550
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6551
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6552
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6553
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6554
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6555
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6556
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6557
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6558
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6559
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6560
    "Modified: / 01-05-2016 / 19:15:00 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6561
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6562
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6563
processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6564
    |s changeClass sel  cls p rec clsName ownerTree ownerName
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6565
     m nameAndClass args instVarsArg classVarsArg categoryArg|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6566
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6567
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6568
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6569
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6570
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6571
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6572
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6573
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6574
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6575
     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
  6576
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6577
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6578
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6579
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6580
        timeStampInfo := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6581
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6582
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6583
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6584
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6585
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6586
    p := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6587
    (p notNil and:[p ~~ #Error]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6588
        p isMessage ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6589
            sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6590
            rec := p receiver.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6591
            args := p args.        
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6592
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6593
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6594
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6595
        (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6596
            "/ a comment only
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6597
            changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6598
            NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6599
                changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6600
                "/ changeString := changeString allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6601
                changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6602
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6603
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6604
            changeType := '(???)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6605
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6606
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6607
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6608
    (sel == #comment:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6609
        changeType := '(comment)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6610
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6611
        changeClass := (self nameSpaceForApply) classNamed:clsName.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6612
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6613
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6614
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6615
            changeType := changeType allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6616
            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6617
            "/ changeString := clsName allItalic.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6618
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6619
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6620
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6621
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6622
            ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6623
                (changeClass comment = (args at:1) evaluate) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6624
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6625
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6626
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6627
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6628
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6629
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6630
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6631
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6632
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6633
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6634
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6635
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6636
        sel := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6637
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6638
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6639
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6640
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6641
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6642
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6643
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6644
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6645
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6646
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6647
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6648
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6649
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6650
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6651
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6652
        changeString := self contractClass:clsName selector:sel to:maxLen.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6653
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6654
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6655
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6656
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6657
    (p notNil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6658
    and:[p ~~ #Error
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6659
    and:[p isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6660
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6661
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6662
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6663
        clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6664
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6665
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6666
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6667
            changeType := '(category change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6668
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6669
            (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6670
            "/ changeClassNames at:changeClassNames size put:clsName.
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6671
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6672
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6673
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6674
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6675
                    m := changeClass compiledMethodAt:sel asSymbol.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6676
                    m notNil ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6677
                        m category = (p args at:1) evaluate ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6678
                            changeDelta := '='.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6679
                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6680
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6681
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6682
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6683
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6684
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6685
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6686
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6687
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6688
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6689
            (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6690
            "/ changeClassNames at:changeClassNames size put:clsName.
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6691
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6692
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6693
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6694
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6695
                    changeDelta := ' '
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6696
                ]
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6697
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6698
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6699
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6700
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6701
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6702
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6703
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6704
        changeType := '(class definition)'.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6705
        clsName := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6706
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6707
        "/ changeClassNames at:changeClassNames size put:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6708
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6709
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6710
        ('*privateIn:' match:sel) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6711
            ownerTree := args last.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6712
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6713
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6714
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6715
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6716
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6717
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6718
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6719
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6720
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6721
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6722
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6723
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6724
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6725
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6726
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6727
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6728
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6729
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6730
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6731
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6732
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6733
                    ((cls superclass isNil
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  6734
                        and:[p receiver isLiteral
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6735
                        and:[p receiver evaluate isNil]])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6736
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6737
                        cls superclass notNil
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  6738
                        and:[p receiver isLiteral not
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6739
                        and:[cls superclass name = p receiver name]]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6740
                    ]) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6741
                        (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6742
                        ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6743
                            "/ VSE definition message
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6744
                            instVarsArg := ''.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6745
                            classVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6746
                            categoryArg := (args at:4) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6747
                        ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6748
                            instVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6749
                            classVarsArg := (args at:3) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6750
                            categoryArg := (args at:5) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6751
                        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6752
                        cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6753
                            cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6754
                                cls definitionSelector = (sel , 'category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6755
                                ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6756
                                    "/ ST/V, VAge or Dolphin definition
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6757
                                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6758
                                ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6759
                                    cls category = categoryArg ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6760
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6761
                                    ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6762
                                        changeType := '(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6763
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6764
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6765
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6766
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6767
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6768
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6769
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6770
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6771
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6772
        ^ self.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6773
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6774
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6775
    (#(
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6776
      #'primitiveDefinitions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6777
      #'primitiveFunctions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6778
      #'primitiveVariables:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6779
     ) includes:sel) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6780
        changeType := '(class definition)'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6781
        clsName := rec name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6782
        ^ self.    
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6783
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6784
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6785
    ((sel == #instanceVariableNames:)
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6786
    and:[rec isMessage
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6787
    and:[rec selector == #class]]) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6788
        clsName := rec receiver name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6789
        changeClass := (self nameSpaceForApply) classNamed:clsName.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6790
        changeType := '(class definition)'.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6791
        (changeInfo last) className:clsName.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6792
        "/ changeClassNames at:changeClassNames size put:clsName.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6793
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6794
        autoCompare value ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6795
            changeClass isNil ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6796
                changeDelta := '?'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6797
            ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6798
                s := (p args at:1) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6799
                s = changeClass class instanceVariableString ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6800
                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6801
                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6802
            ]
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6803
        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  6804
        ^ self.    
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6805
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  6806
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6807
    "Modified: / 01-05-2016 / 19:19:54 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6808
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6809
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6810
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6811
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6812
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6813
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6814
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6815
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6816
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6817
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6818
    "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
  6819
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6820
     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
  6821
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6822
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6823
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6824
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6825
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6826
                '=' -> 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
  6827
                '~' -> 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
  6828
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6829
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6830
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6831
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6832
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6833
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6834
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6835
     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
  6836
     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
  6837
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6838
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6839
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6840
    changeInfo := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6841
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6842
"/    changeChunks := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6843
"/    changeClassNames := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6844
"/    changeHeaderLines := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6845
"/    changePositions := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6846
"/    changeTimeStamps := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6847
"/    changeIsFollowupMethodChange := OrderedCollection new.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6848
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6849
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6850
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6851
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6852
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6853
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6854
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6855
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6856
        inStream skipSeparators.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  6857
        chunkPosition := inStream position + 1.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6858
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6859
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6860
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  6861
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6862
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6863
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6864
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6865
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  6866
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6867
    "Modified: / 01-05-2016 / 18:33:36 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6868
! !
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6869
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6870
!ChangesBrowser::ChangeInfo methodsFor:'accessing'!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6871
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6872
chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6873
    ^ chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6874
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6875
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6876
className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6877
    ^ className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6878
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6879
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6880
className:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6881
    className := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6882
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6883
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6884
headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6885
    ^ headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6886
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6887
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6888
headerLine:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6889
    headerLine := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6890
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6891
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6892
isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6893
    ^ isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6894
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6895
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6896
position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6897
    ^ position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6898
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6899
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6900
position:positionArg chunk:chunkArg className:classNameArg selector:selectorArg headerLine:headerLineArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6901
    timestamp:timestampArg isFollowupChange:isFollowupChangeArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6902
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6903
    position := positionArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6904
    chunk := chunkArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6905
    className := classNameArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6906
    selector := selectorArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6907
    headerLine := headerLineArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6908
    timestamp := timestampArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6909
    isFollowupChange := isFollowupChangeArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6910
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6911
    "Created: / 01-05-2016 / 19:01:03 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6912
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6913
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6914
selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6915
    ^ selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6916
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6917
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6918
selector:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6919
    selector := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6920
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6921
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6922
timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6923
    ^ timestamp
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6924
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6925
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  6926
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6927
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6928
version
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  6929
    ^ '$Header$'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6930
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6931
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  6932
version_CVS
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  6933
    ^ '$Header$'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  6934
! !
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  6935