ChangesBrowser.st
author alkurz
Wed, 29 Apr 2020 09:58:01 +0200
changeset 19582 32a575b05791
parent 19569 2acaaa8eade1
permissions -rw-r--r--
#BUGFIX by alkurz Comparing directories failed class: AbstractFileBrowser changed: #openDiffViewOn:and:
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
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    26
		defaultApplicationForVAGEClasses infoHolder leftCodeLabelHolder
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
    27
		rightCodeLabelHolder menuPanel toolbarMenu classNameMap'
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    28
	classVariableNames:'CompressSnapshotInfo DefaultAutoCompare DefaultShowingDiffs
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    29
		KeepEnforcedNameSpace LastEnforcedNameSpace NoColoring
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    30
		ShowWarningDialogs'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    31
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    32
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    33
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    34
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    35
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    36
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    37
		changeFileTimestamp changeInfo changeChunks changeClassNames
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    38
		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
    39
		changeIsFollowupMethodChange autoCompare autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    40
		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
    41
		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
    42
		changeString changeType changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    43
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    44
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    45
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    46
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    47
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    48
Object subclass:#ChangeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    49
	instanceVariableNames:'position chunk className selector headerLine timestamp
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    50
		isFollowupChange categoryIfCategoryChange'
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    51
	classVariableNames:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    52
	poolDictionaries:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    53
	privateIn:ChangesBrowser
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    54
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    55
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    56
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    57
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    58
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    61
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    62
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    63
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    64
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    65
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    66
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
 hereby transferred.
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
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    72
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    73
"
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    74
    this implements a browser for the changes-file 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    75
    (actually, it can display any sourceFile's contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    76
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    77
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    78
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    79
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    80
    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
    81
    and the Merovingian has not yet detected this one ;-)
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    82
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    83
    At the time this was originally written, I had a 2Mb machine, and every memory byte was a very valuable.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    84
    Therefore, the original did not keep any infos in memory, but instead kept a list of change-chunk file offsets,
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    85
    and parsed the chunks over and over (eg. when searching for classname/selector etc.)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    86
    Later, when bigger memories became available, more and more infos where cached in additional arrays (classname,
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    87
    selector, etc.) and those where finally condensed into a single changeInfo object.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    88
    However, now that really enough memory is avail, this is really no longer useful, and we should keep
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    89
    changeSet entries instead (which hold the same info plus more).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    90
    The ChangeSetBrowser does exactly this, but does not support all of the fancy compress/delete etc.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    91
    operations of the ChangesBrowser, to which we got used so much.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    92
    Thus, this one kept on living its zombie life and gets occasional features added (sigh)...
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    93
    (Well, like many workhorses, they become ugly when aged, but still do their duty)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    94
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    95
    It MUST eventually be completely replaced by the ChangeSetBrowser class in the near future.
5703
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    96
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    97
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    98
    [Class variables:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    99
        CompressSnapshotInfo            if true (the default), snapshot entries
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   100
                                        are also compressed in the compress function.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   101
                                        Some users prefer them to be not compressed.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   102
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
   103
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
   104
    Notice:
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   105
        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
   106
        (which did not exist when the ChangesBrowser was originally written)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   107
        and manipulate that changeSet.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   108
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   109
        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
   110
        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
   111
        subclasses (where it belongs) and give a better encapsulation and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   112
        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
   113
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   114
        The Change hierarchy is currently been completed, and the changes browser
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
   115
        should be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   116
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   117
    [author:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   118
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   119
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   120
    [start with:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   121
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   122
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   123
    [see also:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   124
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   125
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   126
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   127
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   128
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   129
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   130
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   131
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   132
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   133
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   134
    |fileName browser|
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   135
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   136
    fileName := aFilename asFilename pathName.
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   137
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   138
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   139
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   140
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   141
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   142
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   143
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   144
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   145
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   146
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   147
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   148
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   149
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   150
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   151
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   152
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   153
571fd5eee315 Initial revision
claus
parents:
diff changeset
   154
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   155
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   156
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   157
571fd5eee315 Initial revision
claus
parents:
diff changeset
   158
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   159
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   160
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   161
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   162
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   163
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   164
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   165
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   166
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   167
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   168
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   169
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   170
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   171
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   172
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   173
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   174
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   175
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   176
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   177
     (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
   178
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   179
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   180
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   181
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   182
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   183
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   184
!ChangesBrowser class methodsFor:'help specs'!
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   185
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
   186
helpSpec
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   187
    <resource: #help>
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   188
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   189
    ^ Dictionary new 
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   190
        addPairsFrom:#(
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
#applyChange
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   193
'Apply (install) the selected change'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   194
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   195
deleteAllForClass
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   196
'Delete all changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   197
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   198
deleteForClassFromBegin
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   199
'Delete this and all previous changes for the selected change''s class'
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   200
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   201
deleteForClassToEnd
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   202
'Delete this and all following changes for the selected change''s class'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   203
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   204
deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   205
'Delete all changes for the selected method'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   206
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   207
deleteClassSelectorOlder
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   208
'Delete this and all previous versions of the selected change'
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   209
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   210
)
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   211
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   212
    "Modified: / 25-07-2017 / 10:55:55 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   213
    "Modified: / 15-02-2019 / 12:29:30 / Claus Gittinger"
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   214
! !
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   215
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   216
!ChangesBrowser class methodsFor:'menu specs'!
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   217
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   218
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   219
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   220
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   221
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   222
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   223
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   224
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   225
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   226
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   227
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   228
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   229
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   230
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   231
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   232
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   233
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   234
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   236
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   237
            label: 'File'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   238
            submenuChannel: menuSpecFile
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   240
         (MenuItem
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   241
            label: 'Change_subst'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   242
            submenuChannel: menuSpecChange
7096
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: 'Search'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   246
            submenuChannel: menuSpecSearch
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   247
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   248
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   249
            label: 'Browse'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   250
            submenuChannel: menuSpecBrowse
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   251
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   252
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   253
            label: 'Settings'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   254
            submenuChannel: menuSpecSettings
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   255
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   256
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   257
            label: 'MENU_Help'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   258
            submenuChannel: menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   259
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   260
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   261
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   262
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   263
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   264
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   265
    "Modified: / 21-11-2016 / 23:46:22 / cg"
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   266
    "Modified: / 01-07-2018 / 09:24:30 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   267
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   268
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   269
menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   270
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   271
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   272
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   273
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   274
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   275
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   276
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   277
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   278
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   279
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecBrowse)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   280
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   281
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   282
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   283
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   284
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   285
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   286
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   287
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   288
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   289
            label: 'Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   290
            itemValue: doBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   291
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   292
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   293
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   294
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   295
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   296
            label: 'Senders...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   297
            itemValue: doBrowseSenders
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   298
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   299
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   300
            label: 'Implementors...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   301
            itemValue: doBrowseImplementors
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   302
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   303
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   304
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   305
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   306
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   307
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   308
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   309
menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   310
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   311
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   312
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   313
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   314
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   315
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   316
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   317
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   318
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   319
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecChange)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   320
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   321
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   322
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   323
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   324
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   325
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   326
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   327
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   328
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   329
            label: 'Apply'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   330
            itemValue: doApply
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   331
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   332
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   333
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   334
            label: 'Apply to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   335
            itemValue: doApplyRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   336
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   337
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   338
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   339
            label: 'Apply from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   340
            itemValue: doApplyFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   341
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   342
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   343
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   344
            label: 'Apply for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   345
            itemValue: doApplyClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   346
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   347
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   348
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   349
            label: 'Apply for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   350
            itemValue: doApplyClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   351
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   352
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   353
            enabled: hasNoSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   354
            label: 'Apply All'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   355
            itemValue: doApplyAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   356
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   357
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   358
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   359
            label: 'Apply to Conflict or End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   360
            itemValue: doApplyToConflictOrEnd
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   361
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   362
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   363
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   364
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   365
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   366
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   367
            label: 'Delete'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   368
            itemValue: doDelete
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   369
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   370
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   371
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   372
            label: 'Delete to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   373
            itemValue: doDeleteRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   374
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   375
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   376
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   377
            label: 'Delete from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   378
            itemValue: doDeleteFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   379
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   380
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   381
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   382
            label: 'Delete for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   383
            itemValue: doDeleteClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   384
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   385
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   386
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   387
            label: 'Delete for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   388
            itemValue: doDeleteClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   389
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   390
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   391
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   392
            label: 'Delete all for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   393
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   394
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   395
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   396
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   397
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   398
            label: 'Delete all for Class && its Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   399
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   400
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   401
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   402
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   403
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   404
            label: 'Delete all for Namespace'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   405
            itemValue: doDeleteAllForNamespace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   406
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   407
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   408
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   409
            label: 'Delete all for Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   410
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   411
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   412
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   413
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   414
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   415
            label: 'Delete all for Classes && their Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   416
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   417
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   418
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   419
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   420
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   421
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   422
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   423
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   424
            label: 'Delete older Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   425
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   426
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   427
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   428
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   429
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   430
            label: 'Delete older Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   431
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   432
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   433
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   434
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   435
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   436
            label: 'Delete all Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   437
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   438
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   439
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   440
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   441
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   442
            label: 'Delete all Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   443
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   444
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   445
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   446
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   447
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   448
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   449
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   450
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   451
            label: 'Compare with Current'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   452
            itemValue: doCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   453
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   454
         (MenuItem
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   455
            enabled: hasSingleSelection
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   456
            label: 'Copy to Clipboard'
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   457
            itemValue: doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   458
          )
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   459
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   460
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   461
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   462
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   463
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   464
            label: 'Make Change a Patch'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   465
            itemValue: doMakePatch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   466
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   467
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   468
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   469
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   470
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   471
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   472
    "Modified: / 21-11-2016 / 23:46:42 / cg"
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   473
    "Modified: / 21-06-2018 / 09:11:40 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   474
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   475
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   476
menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   477
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   478
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   479
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   480
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   481
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   482
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   483
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   484
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   485
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   486
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecFile)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   487
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   488
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   489
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   490
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   491
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   492
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   493
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   494
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   495
            label: 'Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   496
            itemValue: doCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   497
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   498
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   499
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   500
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   501
            label: 'Compress for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   502
            itemValue: doCompressClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   503
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   504
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   505
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   506
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   507
            label: 'Compress for Class && Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   508
            itemValue: doCompressSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   509
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   510
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   511
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   512
            label: 'Compare and Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   513
            itemValue: doCompareAndCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   514
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   515
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   516
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   517
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   518
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   519
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   520
         (MenuItem
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   521
            label: 'Cleanup'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   522
            itemValue: doCleanup
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   523
            isVisible: notEditingClassSource
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   524
          )
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   525
         (MenuItem
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   526
            label: '-'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   527
            isVisible: notEditingClassSource
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   528
          )
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   529
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   530
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   531
            label: 'Fileout && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   532
            itemValue: doFileoutAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   533
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   534
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   535
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   536
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   537
            label: 'CheckIn && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   538
            itemValue: doCheckinAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   539
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   540
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   541
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   542
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   543
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   544
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   545
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   546
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   547
            label: 'Save In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   548
            itemValue: doSave
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   549
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   550
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   551
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   552
            label: 'Save to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   553
            itemValue: doSaveRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   554
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   555
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   556
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   557
            label: 'Save for Class to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   558
            itemValue: doSaveClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   559
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   560
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   561
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   562
            label: 'Save all for Class In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   563
            itemValue: doSaveClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   564
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   565
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   566
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   567
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   568
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   569
            label: 'Writeback ClassFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   570
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   571
            isVisible: editingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   572
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   573
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   574
            label: 'Writeback ChangeFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   575
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   576
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   577
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   578
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   579
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   580
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   581
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   582
            label: 'Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   583
            itemValue: doUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   584
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   585
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   586
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   587
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   588
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   589
            label: 'Exit'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   590
            itemValue: menuExit
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   591
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   592
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   593
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   594
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   595
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   596
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   597
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   598
menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   599
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   600
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   601
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   602
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   603
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   604
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   605
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   606
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   607
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   608
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecHelp)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   609
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   610
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   611
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   612
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   613
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   614
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   615
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   616
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   617
            label: 'ChangesBrowser Documentation'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   618
            itemValue: openHTMLDocument:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   619
            argument: 'tools/cbrowser/TOP.html'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   620
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   621
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   622
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   623
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   624
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   625
            label: 'About ChangesBrowser...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   626
            itemValue: openAboutThisApplication
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   627
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   628
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   629
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   630
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   631
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   632
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   633
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   634
menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   635
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   636
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   637
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   638
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   639
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   640
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   641
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   642
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   643
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   644
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSearch)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   645
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   646
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   647
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   648
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   649
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   650
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   651
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   652
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   653
            label: 'Class...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   654
            itemValue: findClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   655
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   656
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   657
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   658
            label: 'First for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   659
            itemValue: findFirstForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   660
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   661
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   662
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   663
            label: 'Previous for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   664
            itemValue: findPreviousForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   665
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   666
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   667
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   668
            label: 'Next for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   669
            itemValue: findNextForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   670
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   671
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   672
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   673
            label: 'Last for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   674
            itemValue: findLastForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   675
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   676
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   677
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   678
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   679
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   680
            label: 'Selector...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   681
            itemValue: findSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   682
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   683
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   684
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   685
            label: 'Previous for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   686
            itemValue: findPreviousForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   687
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   688
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   689
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   690
            label: 'Next for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   691
            itemValue: findNextForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   692
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   693
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   694
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   695
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   696
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   697
            label: 'String...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   698
            itemValue: findString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   699
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   700
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   701
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   702
            label: 'Previous with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   703
            itemValue: findPreviousForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   704
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   705
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   706
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   707
            label: 'Next with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   708
            itemValue: findNextForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   709
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   710
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   711
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   712
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   713
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   714
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   715
            label: 'Previous Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   716
            itemValue: findPreviousDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   717
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   718
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   719
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   720
            label: 'Next Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   721
            itemValue: findNextDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   722
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   723
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   724
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   725
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   726
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   727
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   728
            label: 'Previous Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   729
            itemValue: findPreviousSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   730
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   731
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   732
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   733
            label: 'Next Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   734
            itemValue: findNextSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   735
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   736
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   737
            label: 'Last Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   738
            itemValue: findLastSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   739
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   740
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   741
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   742
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   743
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   744
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   745
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   746
menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   747
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   748
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   749
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   750
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   751
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   752
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   753
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   754
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   755
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   756
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSettings)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   757
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   758
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   759
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   760
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   761
    ^ 
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   762
     #(Menu 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   763
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   764
          label: 'Auto Compare'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   765
          indication: autoCompare
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   766
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   767
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   768
          label: 'Autoload As Required'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   769
          indication: autoloadAsRequired
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   770
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   771
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   772
          label: 'Show Diffs'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   773
          indication: showingDiffs
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   774
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   775
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   776
          label: 'Auto Update'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   777
          indication: autoUpdate
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   778
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   779
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   780
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   781
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   782
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   783
          label: 'Add to ChangeSet when Applying'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   784
          indication: updateChangeSet
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   785
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   786
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   787
          label: 'Ignore Public/Private in Categories (Dolphin code)'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   788
          itemValue: ignorePublicPrivateCategories:
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   789
          isVisible: false
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   790
          indication: ignorePublicPrivateCategories
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   791
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   792
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   793
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   794
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   795
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   796
          label: 'Apply into Package...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   797
          itemValue: setEnforcedPackage
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   798
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   799
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   800
          label: 'Apply into NameSpace...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   801
          itemValue: setEnforcedNameSpace
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   802
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   803
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   804
          label: 'Class Mapping...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   805
          itemValue: doAddToClassMap
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   806
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   807
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   808
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   809
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   810
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   811
          label: 'Settings...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   812
          itemValue: openSettingsDialog
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   813
       )
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   814
     )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   815
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   816
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   817
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   818
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   819
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   820
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   821
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   822
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   823
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   824
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   825
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   826
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   827
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   828
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   829
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   830
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   831
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   832
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   833
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   834
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   835
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   836
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   837
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   838
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   839
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   840
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   841
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   842
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   843
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   844
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   845
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   846
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   847
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   848
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   849
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   850
            isVisible: canDeleteChanges
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   851
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   852
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   853
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   854
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   855
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   856
          )
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   857
         (MenuItem
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   858
            activeHelpKey: deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   859
            enabled: hasSelectionHolder
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   860
            isVisible: canDeleteChanges
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   861
            label: 'Delete for Class from Beginning'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   862
            itemValue: doDeleteClassFromBeginning
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   863
            translateLabel: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   864
            isButton: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   865
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassFromStart24x24Icon)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   866
          )
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   867
         (MenuItem
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   868
            activeHelpKey: deleteForClassToEnd
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   869
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   870
            isVisible: canDeleteChanges
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   871
            label: 'Delete for Class to End'
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   872
            itemValue: doDeleteClassRest
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   873
            translateLabel: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   874
            isButton: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   875
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassToEnd24x24Icon)
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   876
          )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   877
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   878
            label: '-'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   879
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   880
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   881
            activeHelpKey: deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   882
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   883
            isVisible: canDeleteChanges
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   884
            label: 'Delete all versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   885
            itemValue: doDeleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   886
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   887
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   888
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethod24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   889
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   890
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   891
            activeHelpKey: deleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   892
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   893
            isVisible: canDeleteChanges
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   894
            label: 'Delete this and older versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   895
            itemValue: doDeleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   896
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   897
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   898
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethodFromStart24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   899
          )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   900
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   901
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   902
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   903
      )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   904
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   905
    "Modified: / 07-07-2017 / 12:52:28 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   906
    "Modified: / 15-02-2019 / 12:28:27 / Claus Gittinger"
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
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   909
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   910
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   911
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   912
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   913
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   914
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   915
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   916
    (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
   917
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   918
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   919
	    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
   920
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   921
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   922
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   923
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   924
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   925
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   926
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   927
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   928
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   929
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   930
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   931
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   932
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   933
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   934
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   935
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   936
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   937
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   938
readXMLChangesFromFile:changeFileName inBackground:inBackground
14011
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   939
    |set|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   940
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   941
    changeFileName asFilename readingFileDo:[:s|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   942
        set := self readXMLChangesFrom:s inBackground:false.
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   943
    ].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   944
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   945
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   946
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   947
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   948
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   949
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   950
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   951
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   952
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   953
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   954
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   955
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   956
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   957
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   958
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   959
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   960
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   961
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   962
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   963
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   964
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   965
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   966
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   967
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   968
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   969
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   970
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   971
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   972
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   973
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   974
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   975
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   976
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   977
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   978
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   979
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   980
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   981
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   982
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   983
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   984
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   985
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   986
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   987
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   988
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   989
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   990
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   991
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   992
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   993
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   994
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   995
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   996
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   997
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   998
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   999
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1000
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1001
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1002
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1003
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1004
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1005
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1006
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1007
canDeleteChanges
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1008
    "makes the delete buttons in the toolbar visible"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1009
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1010
    ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1011
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1012
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1013
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1014
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1015
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1016
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1017
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1018
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1019
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1020
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1021
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1022
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1023
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1024
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1025
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1026
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1027
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1028
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1029
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1030
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1031
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1032
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1033
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1034
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1035
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1036
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1037
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1038
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1039
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1040
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1041
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1042
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1043
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1044
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1045
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1046
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1047
hasSelection
17924
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1048
    "true if a change is selected"
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1049
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1050
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1051
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1052
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1053
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1054
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1055
        with:[:v | v notEmptyOrNil ]
19512
3fe02dbbb6dc #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19395
diff changeset
  1056
        argument:changeListSelectionHolder
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1057
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1058
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1059
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1060
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1061
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1062
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1063
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1064
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1065
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1066
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1067
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1068
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1069
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1070
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1071
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1072
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1073
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1074
leftCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1075
    "change the string shown above the left codeView (defaults to: 'Current')"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1076
    
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1077
    self leftCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1078
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1079
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1080
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1081
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1082
leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1083
    "holds the string shown above the left codeView (defaults to: 'Current')"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1084
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1085
    ^ leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1086
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1087
    "Created: / 07-12-2017 / 12:28:31 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1088
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1089
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1090
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1091
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1092
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1093
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1094
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1095
    ^ (self editingClassSource or:[readOnly == true]) not
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1096
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1097
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1098
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1099
    ^ (readOnly ~~ true)
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1100
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1101
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1102
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1103
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1104
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1105
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1106
rightCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1107
    "change the string shown above the right codeView (defaults to: 'Change')"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1108
    
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1109
    self rightCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1110
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1111
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1112
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1113
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1114
rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1115
    "holds the string shown above the right codeView (defaults to: 'Change')"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1116
    
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1117
    ^ rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1118
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1119
    "Created: / 07-12-2017 / 12:28:37 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1120
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1121
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1122
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1123
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1124
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1125
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1126
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1127
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1128
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1130
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1131
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1132
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1133
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1134
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1135
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1136
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1137
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1138
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1139
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1140
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1141
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1142
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1143
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1144
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1145
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1146
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1147
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1148
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1149
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1150
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1151
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1152
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1153
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1154
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1155
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1156
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1157
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1158
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1159
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1160
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1161
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1162
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1163
    "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
  1164
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1165
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1166
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1167
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1168
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
  1169
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1170
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1171
correctableError:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1172
    "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
  1173
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1174
     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
  1175
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1176
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1177
    ShowWarningDialogs == true ifTrue:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1178
        self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1179
    ] ifFalse:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1180
        Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1181
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1182
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1183
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1184
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1185
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1186
    "compiler notifies us of a warning"
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1187
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1188
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1189
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1190
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1191
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1192
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1193
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1194
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1195
    "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
  1196
     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
  1197
     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
  1198
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1199
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1200
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1201
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1202
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1203
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1204
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1205
error:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1206
    "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
  1207
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1208
     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
  1209
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1210
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1211
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1212
    (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
  1213
        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
  1214
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1215
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  1216
    "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
  1217
     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
  1218
    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
  1219
        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
  1220
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1221
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1222
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1223
             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
  1224
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1225
            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
  1226
                          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
  1227
                          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
  1228
                          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
  1229
                          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
  1230
                          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
  1231
                          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
  1232
                          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
  1233
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1234
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1235
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1236
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1237
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1238
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1239
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1240
        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
  1241
            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
  1242
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1243
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1244
        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
  1245
            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
  1246
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1247
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1248
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1249
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1250
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1251
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1252
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1253
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1254
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1255
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1256
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1257
     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
  1258
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1259
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1260
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1261
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1262
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1263
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1264
warning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1265
    "compiler notifies us of a warning - ignore it"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1266
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1267
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1268
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1269
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1270
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1271
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1272
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1273
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1274
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1275
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1276
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1277
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1278
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1279
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1280
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1281
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1282
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1283
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1284
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1285
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1286
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1287
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1288
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1289
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1290
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1291
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1292
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1293
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1294
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1295
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1296
    (key == #Delete) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1297
        self sensor shiftDown ifTrue:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1298
            self doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1299
        ] ifFalse:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1300
            self doDelete.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1301
        ].
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1302
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1303
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1304
    (key == #BackSpace) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1305
        self doDelete. "/ doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1306
        ^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1307
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1308
    (key == #Accept) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1309
        self doApply.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1310
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1311
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1312
    (key == #Find) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1313
        self findClass.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1314
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1315
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1316
    (key == #FindPrev) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1317
        self findPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1318
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1319
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1320
    (key == #FindNext) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1321
        self findNext.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1322
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1323
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1324
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1325
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1326
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1327
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1328
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1329
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1330
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1331
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1332
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1333
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1334
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1335
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1336
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1337
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1338
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1339
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1340
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1341
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1342
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1343
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1344
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1345
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1346
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1347
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1348
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1349
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1350
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1351
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1352
    self askIfChangesAreToBeWrittenBack.
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1353
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1354
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1355
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1356
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1357
    doCompare ifTrue:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1358
        self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1359
    ] ifFalse:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1360
        changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1361
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1362
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1363
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1364
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1365
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1366
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1367
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1368
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1369
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1370
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1371
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1372
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1373
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1374
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1375
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1376
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1377
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1378
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1379
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1380
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1381
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1382
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1383
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1384
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1385
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1386
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1387
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1388
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1389
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1390
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1391
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1392
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1393
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1394
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1395
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1396
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1397
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1398
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1399
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1400
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1401
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1402
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1403
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1404
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1405
                ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1406
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1407
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1408
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1409
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1410
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1411
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1412
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1413
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1414
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1415
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1416
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1417
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1418
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1419
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1420
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1421
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1422
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1423
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1424
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1425
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1426
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1427
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1428
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1429
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1430
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1431
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1432
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1433
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1434
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1435
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1436
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1437
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1438
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1439
                          ('Delete all for Classes'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1440
                          ('Delete all for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1441
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1442
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1443
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1444
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1445
                          ('Delete all for Class'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1446
                          ('Delete all for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1447
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1448
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1449
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1450
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1451
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1452
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1453
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1454
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1455
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1456
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1457
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1458
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1459
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1460
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1461
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1462
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1463
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1464
        items := items , #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1465
                      ('Fileout & Delete all for Class' doFileoutAndDeleteClassAll     )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1466
                      ('CheckIn & Delete all for Class' doCheckinAndDeleteClassAll     )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1467
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1468
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1469
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1470
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1471
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1472
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1473
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1474
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1475
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1476
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1477
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1478
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1479
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1480
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1481
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1482
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1483
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1484
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1485
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1486
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1487
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1488
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1489
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1490
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1491
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1492
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1493
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1494
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1495
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1496
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1497
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1498
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1499
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1500
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1501
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1502
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1503
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1504
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1505
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1506
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1507
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1508
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1509
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1510
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1511
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1512
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1513
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1514
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1515
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1516
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1517
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1518
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1519
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1520
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1521
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1522
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1523
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1524
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1525
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1526
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1527
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1528
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1529
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1530
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1531
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1532
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1533
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1534
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1535
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1536
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1537
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1538
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1539
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1540
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1541
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1542
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1543
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1544
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1545
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1546
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1547
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1548
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1549
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1550
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1551
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1552
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1553
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1554
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1555
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1556
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1557
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1558
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1559
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1560
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1561
initialize
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1562
    |panel infoLabel v upperFrame buttonPanel  mH  tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1563
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1564
19512
3fe02dbbb6dc #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19395
diff changeset
  1565
    changeListSelectionHolder := nil asValue.
3fe02dbbb6dc #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19395
diff changeset
  1566
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1567
    leftCodeLabelHolder := (self class resources string:'Current') asValue.
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1568
    rightCodeLabelHolder := (self class resources string:'Change_subst') asValue.    
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1569
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1570
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1571
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1572
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1573
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1574
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1575
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1576
    encodingIfKnown := nil.
17968
f29d9da436a7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17953
diff changeset
  1577
    autoCompare := (DefaultAutoCompare ? true) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1578
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1579
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1580
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1581
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1582
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1583
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1584
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1585
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1586
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1587
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1588
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1589
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1590
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1591
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1592
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1593
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1594
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1595
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1596
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1597
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1598
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1599
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1600
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1601
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1602
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1603
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1604
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1605
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1606
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1607
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1608
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1609
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1610
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1611
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1612
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1613
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1614
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1615
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1616
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1617
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1618
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1619
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1620
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1621
        toolbarMenu menu:(self toolbarMenu).
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  1622
        toolbarMenu helpSpecProvider:self. "/ for helpTexts
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1623
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1624
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1625
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1626
        mH := mH + tmH + 1.
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1627
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1628
        toolbarMenu delegate:self.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1629
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1630
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1631
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1632
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1633
    panel := VariableVerticalPanel in:self. 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1634
    "/ panel origin:(0.0 @ mH) corner:(1.0 @ 1.0)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1635
    panel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1636
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1637
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1638
                    topFraction:0.0 offset:mH
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1639
                    bottomFraction:1.0 offset:-30).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1640
    panel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1641
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1642
    infoLabel := Label in:self.
19569
2acaaa8eade1 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19567
diff changeset
  1643
    infoLabel layout:(LayoutFrame
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1644
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1645
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1646
                    topFraction:1.0 offset:-28
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1647
                    bottomFraction:1.0 offset:-2).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1648
    infoLabel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1649
    infoLabel sizeFixed:true.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1650
    infoLabel level:-1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1651
    infoLabel adjust:#left.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1652
    infoLabel labelChannel:(infoHolder := '' asValue).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1653
    
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1654
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1655
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1656
        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
  1657
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1658
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1659
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1660
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1661
        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
  1662
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1663
        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
  1664
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1665
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1666
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1667
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1668
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1669
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1670
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1671
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1672
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1673
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1674
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1675
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1676
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
19237
f0c43f38c554 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19127
diff changeset
  1677
        buttonPanel horizontalLayout:#leftSpace verticalLayout:#topSpace.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1678
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1679
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1680
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1681
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1682
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1683
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1684
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1685
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1686
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1687
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1688
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1689
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1690
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1691
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1692
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1693
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1694
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1695
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1696
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1697
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1698
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1699
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1700
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1701
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1702
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1703
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1704
    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
  1705
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1706
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1707
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1708
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1709
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1710
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1711
    lbl := Label label:leftCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1712
    lbl labelChannel:leftCodeLabelHolder.
19569
2acaaa8eade1 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19567
diff changeset
  1713
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1714
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1715
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1716
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1717
                        bottomFraction:0.0 offset:20).
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1718
    lbl := Label label:rightCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1719
    lbl labelChannel:rightCodeLabelHolder.
19569
2acaaa8eade1 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19567
diff changeset
  1720
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1721
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1722
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1723
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1724
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1725
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1726
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1727
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1728
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1729
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1730
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1731
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1732
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1733
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1734
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1735
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1736
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1737
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1738
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1739
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1740
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1741
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1742
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1743
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1744
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1745
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1746
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1747
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1748
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1749
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1750
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1751
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1752
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1753
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1754
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1755
    "Modified: / 07-12-2017 / 12:28:09 / cg"
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1756
    "Modified: / 24-09-2018 / 22:50:40 / Claus Gittinger"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1757
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1758
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1759
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1760
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1761
    self readChangesFileInBackground:true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  1762
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1763
    changeListView action:[:lineNrOrCollection | self changeSelection:lineNrOrCollection].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1764
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1765
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1766
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1767
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1768
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1769
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1770
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1771
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1772
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1773
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1774
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1775
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1776
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1777
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1778
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1779
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1780
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1781
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1782
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1783
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1784
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1785
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1786
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1787
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1788
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1789
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1790
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1791
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1792
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1793
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1794
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1795
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1796
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1797
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1798
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1799
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1800
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1801
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1802
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1803
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1804
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1805
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1806
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1807
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1808
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1809
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1810
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1811
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1812
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1813
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1814
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1815
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1816
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1817
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1818
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1819
            box := YesNoBox new.
19520
32c1e071b13c #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19512
diff changeset
  1820
            box title:(c'The modified changelist has not been written back to the change file.\n\nWrite change file before exiting ?').
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1821
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1822
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1823
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1824
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1825
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1826
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1827
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1828
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1829
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1830
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1831
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1832
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1833
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1834
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1835
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1836
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1837
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1838
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1839
doAddToClassMap
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1840
    "add a class name mapping"
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1841
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1842
    |mapping initialNameInChangeFile initialNameInImage|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1843
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1844
    [:exit |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1845
        self withSelectedChangesDo:[:changeNr |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1846
            | className |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1847
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1848
            className := self classNameOfChange:changeNr.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1849
            className notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1850
                initialNameInChangeFile := className.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1851
                exit value:nil.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1852
            ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1853
        ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1854
    ] valueWithExit.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1855
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1856
    initialNameInChangeFile notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1857
        [:exit |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1858
            Smalltalk allClassesDo:[:cls |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1859
                (cls name includesString:initialNameInChangeFile) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1860
                    initialNameInImage := cls name.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1861
                    exit value:nil.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1862
                ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1863
            ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1864
        ] valueWithExit.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1865
    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1866
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1867
    mapping := Dialog 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1868
                    request:'Name in Changefile:' initialAnswer:initialNameInChangeFile
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1869
                    and:'Name in Image' initialAnswer:initialNameInImage
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1870
                    label:'Add Classname Mapping'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1871
    mapping isNil ifTrue:[^ self].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1872
    classNameMap isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1873
        classNameMap := Dictionary new
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1874
    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1875
    classNameMap at:mapping first put:mapping second
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1876
!
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1877
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1878
doApply
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1879
    "user wants a change to be applied"
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
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1882
        (self applyChange:changeNr) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1883
            ^ self "/ cancel
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
        self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1886
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1887
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1888
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1889
doApplyAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1890
    "user wants all changes to be applied"
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
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1893
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1894
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1895
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1896
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1897
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1898
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1899
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1900
        multipleApply := lastNr > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1901
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1902
        1 to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1903
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1904
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1905
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1906
        self autoSelectLast
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1907
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1908
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1909
    "Modified: 21.1.1997 / 22:26:30 / cg"
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
doApplyClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1913
    "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
  1914
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1915
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1916
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1917
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1918
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1919
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1920
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1921
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1922
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1923
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1924
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1925
            multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1926
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1927
            1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1928
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1929
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1930
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1931
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1932
                    lastChange := changeNr
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
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1935
            self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1936
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1937
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1938
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1939
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1940
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1941
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1942
doApplyClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1943
    "user wants all changes for this class from changeNr to be applied"
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1946
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1947
         lastNr "{ Class: SmallInteger }" |
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
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1950
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1951
            self clearCodeView.
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
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1954
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1955
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1956
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1957
            multipleApply := (lastNr - changeNr) > 1.
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
            changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1960
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1961
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1962
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1963
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1964
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1965
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1966
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1967
            self autoSelect:lastChange.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1968
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1969
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1970
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1971
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1972
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1973
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1974
doApplyFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1975
    "user wants all changes from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1976
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1977
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1978
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1979
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1980
        self clearCodeView.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1983
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1984
        multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1985
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1986
        1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1987
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1988
            self applyChange:changeNr
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
        self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1991
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1992
!
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
doApplyRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1995
    "apply all changes from changeNr to the end"
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1998
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1999
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2000
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2001
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2002
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2003
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2004
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2005
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2006
        multipleApply := (lastNr - changeNr) > 1.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2007
        AbortAllOperationRequest handle:[:ex |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2008
            ex return
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2009
        ] do:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2010
            changeNr to:lastNr do:[:changeNr |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2011
                changeListView setSelection:changeNr.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2012
                self applyChange:changeNr
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2013
            ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2014
            self autoSelect:self numberOfChanges.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2015
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2016
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2017
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2018
    "Modified: 21.1.1997 / 22:25:29 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2019
!
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
doApplyToConflictOrEnd
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2022
    "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
  2023
     or the end."
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2026
        |lastNr "{ Class: SmallInteger }"|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2027
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2028
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2029
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2030
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2031
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2032
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2033
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2034
        multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2035
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2036
        changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2037
            | cls sel |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2038
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2039
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2040
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2041
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2042
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2043
            ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2044
                (cls includesSelector:sel) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2045
                    self autoSelect:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2046
                    ^ self
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
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2049
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2050
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2051
        self autoSelect:self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2052
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2053
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2054
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2055
doBrowse
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2056
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2057
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2058
    self withSingleSelectedChangeDo:[:changeNr |
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2059
        |cls|
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2060
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2061
        cls := self classOfChange:changeNr.
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2062
        cls notNil ifTrue:[
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2063
            SystemBrowser default
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2064
                openInClass:cls
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2065
                selector:(self selectorOfMethodChange:changeNr)
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2066
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2067
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2068
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2069
    "Modified: / 01-09-2017 / 14:20:00 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2070
!
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
doBrowseImplementors
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2073
    "open an implementors-browser"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2074
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2075
    |changeNr initial selector|
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
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2078
        initial := self selectorOfMethodChange:changeNr.
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2081
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2082
                    request:'Selector to browse implementors of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2083
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2084
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2085
        SystemBrowser default browseImplementorsMatching:selector.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2086
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2087
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2088
    "Modified (format): / 01-09-2017 / 14:20:06 / cg"
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
doBrowseSenders
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2092
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2093
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2094
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2095
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2096
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2097
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2098
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2099
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2100
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2101
                    request:'Selector to browse senders of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2102
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2103
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2104
        SystemBrowser default browseAllCallsOn:selector asSymbol.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2105
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2106
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2107
    "Modified: / 01-09-2017 / 14:20:13 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2108
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2109
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2110
doCheckinAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2111
    "first checkin the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2112
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2113
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2114
    |classes answer logTitle checkinInfo|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2115
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2116
"/    self theSingleSelection isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2117
"/        ^ self information:'Only possible if a single change is selected.'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2118
"/    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2119
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2120
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2121
        classes := IdentitySet new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2122
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2123
        self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2124
            | className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2125
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2126
            className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2127
            className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2128
                class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2129
                class isNil ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2130
                    self proceedableError:'oops - no class: ', className.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2131
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2132
                class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2133
                    class := class theNonMetaclass.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2134
                    (classes includes:class) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2135
                        class isPrivate ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2136
                            (classes includes:class owningClass) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2137
                                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
  2138
                                                                    bindWith:class owningClass name allBold) withCRs.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2139
                                answer isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2140
                                answer ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2141
                                    classes add:class owningClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2142
                                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2143
                            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2144
                        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2145
                            classes add:class
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2146
                        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2147
                    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2148
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2149
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2150
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2151
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2152
        classes size == 1 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2153
            logTitle := classes first name.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2154
        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2155
            logTitle := '%1 classes' bindWith:classes size.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2156
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2157
        checkinInfo := SourceCodeManagerUtilities default
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2158
                        getCheckinInfoFor:logTitle
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2159
                        initialAnswer:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2160
        checkinInfo isNil ifTrue:[^ self ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2161
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2162
        self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2163
        classes do:[:eachClass |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2164
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2165
                ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2166
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2167
                           from:1 to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2168
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2169
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2170
        self updateChangeList.
11499
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
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2173
    "Modified: / 06-09-1995 / 17:11:16 / claus"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2174
    "Modified: / 17-11-2001 / 14:21:13 / cg"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2175
    "Modified: / 24-05-2018 / 14:55:14 / Claus Gittinger"
11499
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
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2178
doCleanup
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2179
    "cleanup the changefile/changeset.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2180
     actions done:
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2181
     - from the end, find changes which are equal to the current version
18061
f82108ac94a1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18059
diff changeset
  2182
       and not in the current changeset (i.e. represents the current version as built from CVS).
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2183
       Then delete it incl. previous versions of it."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2184
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2185
    |numChanges nextChangeNr changeNr changeSelector changeClass numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2186
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2187
    numChanges := self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2188
    self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2189
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2190
    self withWaitCursorDo:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2191
        "/ find the last method change which is equal
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2192
        changeNr := numChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2193
        [changeNr > 0] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2194
            nextChangeNr := changeNr - 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2195
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2196
            (changeClass := self classOfChange:changeNr ifAbsent:nil) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2197
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2198
                (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2199
                    (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2200
                        (changeSelector := self selectorOfMethodCategoryChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2201
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2202
                                infoHolder value:('Deleting category changes for %1 >> %2' bindWith:changeClass name with:changeSelector).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2203
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2204
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2205
                                   silentDeleteMethodCategoryChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2206
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2207
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2208
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2209
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2210
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2211
                        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2212
                    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2213
                ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2214
                    (changeSelector := self selectorOfMethodChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2215
                        (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2216
                            "/ found a method change, which is the same as the current version
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2217
                            "/ if in the current changeSet, then do not delete (needs checkin first)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2218
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2219
                                infoHolder value:('Deleting changes for %1 >> %2' bindWith:changeClass name with:changeSelector).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2220
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2221
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2222
                                   silentDeleteChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2223
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2224
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2225
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2226
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2227
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2228
                        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2229
                    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2230
                ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2231
            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2232
            changeNr := nextChangeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2233
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2234
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2235
    self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2236
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2237
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2238
doCompare
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2239
    "compare change with current system version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2240
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2241
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2242
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2243
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2244
        self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2245
            self compareChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2246
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2247
        self newLabel:''
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2248
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2249
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2250
    "Modified: 24.2.1996 / 19:37:19 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2251
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2252
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2253
doCompareAndCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2254
    "remove all changes, which are equivalent to the current image version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2255
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2256
    |toDelete|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2257
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2258
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2259
    toDelete := OrderedCollection new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2260
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2261
        1 to:self numberOfChanges do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2262
            (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2263
                toDelete add:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2264
            ]
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
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2267
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2268
    toDelete reverseDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2269
        self silentDeleteChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2270
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2271
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2272
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2273
     scroll back a bit, if we are left way behind the list
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2274
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2275
    changeListView firstLineShown > self numberOfChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2276
        changeListView makeLineVisible:self numberOfChanges
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2277
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2278
    self clearCodeView.
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
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2281
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2282
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2283
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2284
doCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2285
    "compress the change-set; this replaces multiple method-changes by the last
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2286
     (i.e. the most recent) change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2287
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2288
    self compressForClass:nil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2289
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2290
    "Modified: / 29.10.1997 / 01:03:26 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2293
doCompressClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2294
    "compress changes for the selected class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2295
     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
  2296
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2297
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2298
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2299
    self selectedClassNames do:[:classNameToCompress |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2300
        self compressForClass:classNameToCompress.
11499
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
    "Created: / 29.10.1997 / 01:05:16 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2304
    "Modified: / 19.11.2001 / 21:55:17 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2307
doCompressSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2308
    "compress changes for the selected class & selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2309
     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
  2310
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2311
    |classSelectorPairs|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2312
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2313
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2314
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2315
    classSelectorPairs := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2316
    self withSelectedChangesDo:[:changeNr |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2317
        | classNameToCompress selector |
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2318
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2319
        classNameToCompress := self realClassNameOfChange:changeNr.
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2320
        classNameToCompress notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2321
            selector := self selectorOfMethodChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2322
            selector notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2323
                classSelectorPairs add:(classNameToCompress -> selector).
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2324
            ]
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2325
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2326
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2327
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2328
    classSelectorPairs do:[:pair |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2329
        self compressForClass:(pair key) selector:(pair value).
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2330
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2331
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2332
    "Created: / 19.11.2001 / 21:50:59 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2333
    "Modified: / 19.11.2001 / 22:10:08 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2334
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2335
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2336
doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2337
    "user wants a change text to be copied to the clipboard"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2338
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2339
    |text|
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2340
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2341
    self withSingleSelectedChangeDo:[:changeNr |
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2342
        text := self sourceOfMethodChange:changeNr.
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2343
    ].
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2344
    text notEmptyOrNil ifTrue:[
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2345
        self window setClipboardText:text
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2346
    ]
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2347
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2348
    "Created: / 21-11-2016 / 23:38:11 / cg"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2349
!
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2350
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2351
doDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2352
    "delete currently selected change(s)"
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
    |rangeEnd rangeStart firstDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2355
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2356
    changeListView selection size <= 5 ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2357
        self withSelectedChangesReverseDo:[:changeNr |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2358
            self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2359
            self autoSelectOrEnd:changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2360
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2361
        self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2362
        ^ self
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2365
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2366
        rangeEnd isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2367
            rangeEnd := rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2368
        ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2369
            (changeNr = (rangeEnd + 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2370
                rangeEnd := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2371
            ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2372
                (changeNr = (rangeStart - 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2373
                    rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2374
                ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2375
                    self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2376
                    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2377
                    rangeStart := rangeEnd := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2378
                ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2379
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2380
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2381
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2382
    rangeStart notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2383
        self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2384
        firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2385
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2386
    self autoSelectOrEnd:firstDeleted.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2387
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2388
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2389
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2390
doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2391
    "delete all changes for classes with same namespace as currently selected change"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2392
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2393
    |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2394
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2395
    lastChangeNr := -1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2396
    namespacesToDelete := Set new.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2397
    self withSelectedChangesDo:[:changeNr |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2398
        |namespaceToDelete|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2399
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2400
        namespaceToDelete := self namespaceOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2401
        namespaceToDelete notNil ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2402
            namespacesToDelete add:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2403
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2404
        lastChangeNr := lastChangeNr max:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2405
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2406
    namespacesToDelete isEmpty ifTrue:[^ self].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2407
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2408
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2409
    self unselect.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2410
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2411
    self withExecuteCursorDo:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2412
        namespacesToDelete do:[:namespaceToDelete |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2413
            |numDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2414
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2415
            self 
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2416
                silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2417
                from:lastChangeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2418
                to:(self numberOfChanges).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2419
            numDeletedBefore := self
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2420
                                   silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2421
                                   from:1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2422
                                   to:(lastChangeNr-1).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2423
            lastChangeNr := lastChangeNr - numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2424
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2425
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2426
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2427
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2428
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2429
    self autoSelectOrEnd:lastChangeNr.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2430
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2431
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2432
doDeleteAndSelectPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2433
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2434
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2435
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2436
        self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2437
        self autoSelectOrEnd:changeNr-1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2438
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2439
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2440
    "/mh - don't we need a 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2441
    "/  self setChangeList
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2442
    "/ here?
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2443
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2444
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2445
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2446
doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2447
    "delete all changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2448
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2449
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2450
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2451
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2452
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2453
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2454
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2455
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2456
        classNameToDelete := self classNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2457
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2458
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2459
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2460
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2461
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2462
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2463
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2464
    self unselect.
11499
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
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2467
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2468
            |numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2469
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2470
            self silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2471
                                   from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2472
                                     to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2473
            numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2474
                                   silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2475
                                   from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2476
                                   to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2477
            lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2478
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2479
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2480
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2481
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2482
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2483
    self autoSelectOrEnd:lastChangeNr.
11499
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
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2486
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2487
!
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
doDeleteClassAndPrivateClassesAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2490
    "delete all changes with same class and private classes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2491
     as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2492
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2493
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2494
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2495
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2496
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2497
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2498
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2499
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2500
        classNameToDelete := self ownerClassNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2501
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2502
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2503
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2504
        lastChangeNr := lastChangeNr max:changeNr.
11499
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
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2508
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2509
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2510
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2511
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2512
            | changeNr numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2513
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2514
            classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2515
                changeListView setSelection:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2516
                self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2517
                                       from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2518
                                         to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2519
                numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2520
                                       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2521
                                       from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2522
                                       to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2523
                lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2524
                overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2525
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2526
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2527
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2528
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2529
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2530
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2531
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2532
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2533
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2534
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2535
doDeleteClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2536
    "delete changes with same class as currently selected change from the beginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2537
     up to the selected change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2538
     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
  2539
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2540
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2541
        |classNameToDelete prevSelection numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2542
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2543
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2544
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2545
            prevSelection := changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2546
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2547
            numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2548
                                silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2549
                                from:1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2550
                                to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2551
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2552
            self autoSelectOrEnd:(changeNr + 1 - numDeleted)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2553
        ]
11499
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
    "Created: 13.12.1995 / 15:41:58 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2557
    "Modified: 25.5.1996 / 12:26:34 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2560
doDeleteClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2561
    "delete rest of changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2562
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2563
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2564
        | classNameToDelete |
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2565
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2566
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2567
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2568
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2569
            self silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2570
                                   from:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2571
                                     to:(self numberOfChanges).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2572
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2573
            self autoSelectOrEnd:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2574
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2575
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2576
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2577
    "Modified: / 18.5.1998 / 14:25:07 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2580
doDeleteClassSelectorAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2581
    "delete all changes with same class and selector as currently selected change"
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
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2584
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2585
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2586
    classNameSelectorPairsToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2587
    self withSelectedChangesDo:[:changeNr |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2588
        |className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2589
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2590
        className := self realClassNameOfChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2591
        selector := self selectorOfMethodChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2592
        selector notNil ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2593
            (className notNil and:[selector notNil]) ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2594
                classNameSelectorPairsToDelete add:(className -> selector).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2595
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2596
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2597
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2598
    ].
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
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2601
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2602
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2603
    self withExecuteCursorDo:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2604
        classNameSelectorPairsToDelete do:[:pair |
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2605
            |numDeletedBefore className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2606
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2607
            className := pair key.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2608
            selector  := pair value.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2609
            self silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2610
                                   from:lastChangeNr
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2611
                                     to:(self numberOfChanges).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2612
            numDeletedBefore := self
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2613
                                   silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2614
                                   from:1
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2615
                                   to:(lastChangeNr-1).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2616
            lastChangeNr := lastChangeNr - numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2617
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2618
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2619
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2620
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2621
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2622
    self autoSelectOrEnd:lastChangeNr
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
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2625
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2626
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2627
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2628
doDeleteClassSelectorOlder
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2629
    "delete this and older changes with same class and selector 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2630
     as the currently selected change(s).
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2631
     If the selected change is a class-definition change,
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2632
     older definitions for this class are deleted.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2633
     If the selected change is a method-category change,
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2634
     older category changes for this method are deleted"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2635
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2636
    |classNameSelectorTypeTuplesToDelete 
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2637
     lastChangeNr overAllNumDeletedBefore hasCheckinInfoSelected|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2638
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2639
    hasCheckinInfoSelected := false. 
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2640
    lastChangeNr := -1.
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2641
    classNameSelectorTypeTuplesToDelete := OrderedCollection new.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2642
    
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2643
    "/ collect info on what is to be deleted
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2644
    self withSelectedChangesInOrder:#reverse do:[:changeNr |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2645
        |className selector changeType|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2646
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2647
        className := self realClassNameOfChange:changeNr.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2648
        selector := self selectorOfMethodChange:changeNr.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2649
        selector notNil ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2650
            changeType := #methodChange.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2651
        ] ifFalse:[    
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2652
            (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2653
                selector := self selectorOfMethodCategoryChange:changeNr.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2654
                selector notNil ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2655
                    changeType := #methodCategoryChange.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2656
                ]
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2657
            ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2658
                (self isClassDefinitionChange:changeNr) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2659
                    changeType := #classDefinitionChange.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2660
                ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2661
                    (self changeIsCheckinInfo:changeNr) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2662
                        changeType := #checkinInfo.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2663
                        hasCheckinInfoSelected := true.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2664
                    ]    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2665
                ]    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2666
            ].    
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2667
        ].
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2668
        changeType notNil ifTrue:[
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2669
            classNameSelectorTypeTuplesToDelete add:{ className . selector . changeType . changeNr}.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2670
        ].    
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2671
        lastChangeNr := lastChangeNr max:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2672
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2673
        
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2674
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2675
    self unselect.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2676
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2677
    self withExecuteCursorDo:[
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2678
        classNameSelectorTypeTuplesToDelete do:[:tuple |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2679
            |numDeletedBefore className selector changeType lastToDelete|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2680
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2681
            className := tuple at:1.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2682
            selector  := tuple at:2.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2683
            changeType  := tuple at:3.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2684
            lastToDelete := (tuple at:4) - overAllNumDeletedBefore.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2685
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2686
            changeType == #methodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2687
                numDeletedBefore := self
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2688
                                       silentDeleteMethodCategoryChangesFor:className selector:selector
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2689
                                       from:1 to:lastToDelete.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2690
            ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2691
                changeType == #classDefinitionChange ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2692
                    numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2693
                                           silentDeleteClassDefinitionChangesFor:className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2694
                                           from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2695
                ] ifFalse:[  
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2696
                    changeType == #checkinInfo ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2697
                        numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2698
                                           silentDeleteCheckinInfosFor:className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2699
                                           from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2700
                    ] ifFalse:[    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2701
                        changeType == #methodChange ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2702
                            numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2703
                                               silentDeleteChangesFor:className selector:selector
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2704
                                               from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2705
                        ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2706
                            numDeletedBefore := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2707
                            self halt:'oops'.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2708
                        ].    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2709
                    ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2710
                ]
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2711
            ].
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2712
            lastChangeNr := lastChangeNr - numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2713
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2714
        ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2715
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2716
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2717
    self updateChangeList.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2718
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2719
    hasCheckinInfoSelected ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2720
        "/ skip over info chunks
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2721
        [
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2722
            lastChangeNr > 1 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2723
            and:[ self changeIsSpecialInfo:lastChangeNr anyOf:#('snapshot' 'checkin')]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2724
        ] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2725
            lastChangeNr := lastChangeNr - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2726
        ].    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2727
    ].
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2728
    self autoSelectOrEnd:lastChangeNr
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2729
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2730
    "Modified: / 25-07-2017 / 10:57:31 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2731
    "Modified: / 15-02-2019 / 12:26:02 / Claus Gittinger"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2732
!
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2733
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2734
doDeleteFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2735
    "delete all changes from 1 to the current"
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2738
	self deleteChangesFrom:1 to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2739
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2740
	self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2741
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2742
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2743
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2744
doDeleteRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2745
    "delete all changes from current to the end"
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2748
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2749
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2750
	self autoSelectOrEnd:changeNr-1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2751
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2752
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2753
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2754
doFileoutAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2755
    "first fileOut the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2756
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2757
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2758
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2759
	| className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2760
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2761
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2762
	className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2763
	    class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2764
	    class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2765
		Class fileOutErrorSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2766
		    self warn:('fileout failed: ' , ex description).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2767
		] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2768
		    class fileOut.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2769
		    self doDeleteClassAll
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2773
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2774
    ]
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
    "Modified: 6.9.1995 / 17:11:16 / claus"
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
doMakePatch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2780
    "user wants a change to be made a patch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2781
     - copy it over to the patches file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2782
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2783
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2784
	self makeChangeAPatch:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2785
	self autoSelect:(changeNr + 1)
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2789
doMakePermanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2790
    "user wants a change to be made permanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2791
     - rewrite the source file where this change has to go"
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
    |yesNoBox|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2794
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2795
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2796
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2797
    yesNoBox := YesNoBox new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2798
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2799
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2800
    yesNoBox okAction:[   |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2801
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2802
                          changeNr := self theSingleSelection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2803
                          changeNr notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2804
                              self makeChangePermanent:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2805
                              self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2806
                          ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2807
                      ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2808
    yesNoBox showAtPointer.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2809
    yesNoBox destroy
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
    "Modified: 7.1.1997 / 23:03:33 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2814
doSave
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2815
    "user wants a change to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2816
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2817
    |fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2818
13651
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2819
    fileName := Dialog
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2820
                    requestFileNameForSave:(resources string:'Append change to:')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2821
                    default:(lastSaveFileName ? '')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2822
                    ok:(resources string:'Append')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2823
                    abort:(resources string:'Abort')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2824
                    pattern:'*.chg'.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2825
    fileName isEmptyOrNil ifTrue:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2826
        ^ self
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2827
    ].
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2828
    lastSaveFileName := fileName.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2829
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2830
    self withWriteCursorDo:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2831
        self withSelectedChangesDo:[:changeNr |
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2832
            self appendChange:changeNr toFile:fileName.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2833
            self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2834
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2835
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2836
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2837
    "Modified: / 27-07-2012 / 09:46:14 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2838
!
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
doSaveClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2841
    "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
  2842
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2843
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2844
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2845
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2846
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2847
doSaveClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2848
    "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
  2849
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2850
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2851
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2852
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2853
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2854
doSaveClassFrom:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2855
    "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
  2856
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2857
    |changeNr classNameToSave|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2858
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2859
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2860
    classNameToSave := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2861
    classNameToSave notNil ifTrue:[
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2862
        self saveClass:classNameToSave from:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2863
    ]
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2866
doSaveClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2867
    "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
  2868
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2869
    |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2870
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2871
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2872
    self doSaveClassFrom:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2873
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2874
    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2875
    "/ self changeSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2876
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2877
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2878
doSaveRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2879
    "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
  2880
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2881
    |changeNr fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2882
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2883
    (changeNr := self theSingleSelection) isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2884
        ^ self information:(resources string:'Only possible if a single change is selected.').
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2887
    fileName := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2888
                    requestFileNameForSave:(resources string:'Append changes to:')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2889
                    default:(lastSaveFileName ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2890
                    ok:(resources string:'Append')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2891
                    abort:(resources string:'Abort')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2892
                    pattern:'*.chg'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2893
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2894
    fileName notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2895
        lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2896
        self withWriteCursorDo:[
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2897
            changeNr to:(self numberOfChanges) do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2898
                changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2899
                (self appendChange:changeNr toFile:fileName) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2900
                    ^ self
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
            ]
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
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2905
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2906
    "Modified: / 27-07-2012 / 09:46:09 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2907
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2908
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2909
doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2910
    "reread the changes-file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2911
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2912
    self readChangesFileInBackground:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2913
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2914
    realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2915
        self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2916
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2917
!
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
doWriteBack
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2920
    "write back the list onto the changes file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2921
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2922
    anyChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2923
        (self writeBackChanges) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2924
            realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2925
                self readChangesFile.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2926
                realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2927
                    self updateChangeList
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2928
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2929
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2930
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2931
    ]
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: 5.9.1996 / 17:19:46 / 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
findClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2937
    "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
  2938
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2939
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2940
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2941
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2942
        current := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2943
    ].
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
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2946
        askForSearch:'Class to search for:'
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2947
        initialAnswer:(current ? lastSearchString)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2948
        thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2949
                            |thisClassName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2950
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2951
                            thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2952
                            thisClassName notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2953
                            and:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2954
                                (thisClassName sameAs: searchString)
13440
3414d47da4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13373
diff changeset
  2955
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName caseSensitive:false]]]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2956
                        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2957
        onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2958
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2959
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2960
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  2961
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2962
    "Modified: / 12-02-2017 / 11:31:47 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2963
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2964
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2965
findFirstForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2966
    "findNextForClass menu action: select the next change for the selected changes class"
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 findNextForClassStartingAt:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2969
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2970
    "Created: / 20-11-2006 / 16:37:56 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2971
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2972
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2973
findFirstForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2974
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2975
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2976
    self findNextForClass:className startingAt:1
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2977
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2978
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2979
findLastForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2980
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2981
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2982
    self findPreviousForClassStartingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2983
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2984
    "Created: / 20-11-2006 / 16:39:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2985
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2986
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2987
findLastForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2988
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2989
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2990
    self findPreviousForClass:className startingAt:(self numberOfChanges)
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2991
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2992
    "Created: / 20-11-2006 / 16:39:15 / cg"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2993
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2994
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2995
findLastSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2996
    "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
  2997
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2998
    "/ lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2999
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3000
    self 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3001
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3002
        startingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3003
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3004
    "Created: / 06-10-2006 / 11:03:39 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3005
!
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
findNext
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3008
    "findNext menu action: select the next change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3009
     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
  3010
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3011
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3012
	^ self findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3013
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3014
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3015
	^ self findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3016
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3017
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3018
	^ self findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3019
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3020
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3021
	^ self findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3022
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3023
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3024
    ^ self findNextForClass
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
    "Created: / 18.6.1998 / 22:15:00 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3027
    "Modified: / 18.6.1998 / 22:15:25 / cg"
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
findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3031
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3032
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3033
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3034
    self findNextForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3035
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3036
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3037
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3038
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3039
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3040
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3041
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3042
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3043
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3044
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3045
findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3046
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3047
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3048
    self findNextForClassStartingAt: changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3049
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3050
    "Modified: / 20-11-2006 / 16:37:49 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3051
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3052
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3053
findNextForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3054
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3055
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3056
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3057
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3058
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3059
        findNextForWhich:[:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3060
                |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3061
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3062
                thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3063
                (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3064
                or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3065
                    and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3066
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3067
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3068
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3069
findNextForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3070
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3071
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3072
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3073
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3074
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3075
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3076
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3077
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3078
    cls isNil ifTrue:[^ self].
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3079
    self findNextForClass:cls startingAt:startNr.
11499
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
    "Created: / 20-11-2006 / 16:37:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3082
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3083
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3084
findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3085
    "findNextForSelector menu action: select the next change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3086
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3087
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3088
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3089
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3090
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3091
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3092
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3093
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3094
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3095
    self findNextForWhich: [:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3096
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3097
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3098
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3099
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
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
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3104
findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3105
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3106
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3107
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3108
    self findNextWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3109
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3110
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3111
findNextForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3112
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3113
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3114
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3115
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3116
    "Modified: / 20-11-2006 / 16:34:23 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3117
!
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
findNextForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3120
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3121
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3122
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3123
        findNextOrPrevious:#next 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3124
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3125
        startingAt:changeNrToStartSearch
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3126
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3127
    "Created: / 20-11-2006 / 16:34:06 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3128
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3129
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3130
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3131
    "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
  3132
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3133
    self withCursor:Cursor questionMark do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3134
        Object userInterruptSignal handle:[:ex |
17941
10c46b4dbc59 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17924
diff changeset
  3135
            self beepInEditor.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3136
            ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3137
        ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3138
            |increment nr lastNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3139
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3140
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3141
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3142
            nr := changeNrToStartSearch.
19263
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
  3143
            [ (direction == #previous and:[nr > 0])
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3144
              or:[ direction == #next and:[ nr <= lastNr]] 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3145
            ] whileTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3146
                (aBlock value:nr) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3147
                    self selectChange:nr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3148
                    ^ nr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3149
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3150
                nr := nr + increment.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3151
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3152
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3153
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3154
    self showNotFound.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3155
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3156
    ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3157
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3158
    "Created: / 08-03-2012 / 11:57:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3159
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3160
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3161
findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3162
    "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
  3163
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3164
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3165
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3166
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3167
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3168
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3169
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3170
findNextWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3171
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3172
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3173
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3174
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3175
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3176
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3177
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3178
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3179
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3180
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3181
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3182
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3183
    self findNextForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3184
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3185
            |s|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3186
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3187
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3188
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3189
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3190
                or:[ includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3191
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3192
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3193
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3194
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3195
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3196
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3197
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3198
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3199
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3200
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3201
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3202
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3203
findPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3204
    "findPrevious menu action: select the previous change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3205
     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
  3206
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3207
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3208
	^ self findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3209
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3210
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3211
	^ self findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3212
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3213
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3214
	^ self findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3215
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3216
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3217
	^ self findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3218
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3219
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3220
    ^ self findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3221
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3222
    "Created: / 18.6.1998 / 22:15:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3223
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3224
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3225
findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3226
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3227
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3228
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3229
    self findPreviousForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3230
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3231
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3232
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3233
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3234
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3235
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3236
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3237
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3238
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3239
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3240
findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3241
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3242
12738
fcad7d2eec44 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12704
diff changeset
  3243
    self findPreviousForClassStartingAt:((changeNrShown ? 1) - 1)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3244
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3245
    "Modified: / 20-11-2006 / 16:39:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3246
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3247
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3248
findPreviousForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3249
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3250
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3251
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3252
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3253
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3254
        findPreviousForWhich:
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3255
            [:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3256
                    |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3257
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3258
                    thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3259
                    (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3260
                    or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3261
                        and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3262
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3263
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3264
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3265
findPreviousForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3266
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3267
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3268
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3269
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3270
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3271
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3272
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3273
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3274
    cls isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3275
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3276
    self findPreviousForClass:cls startingAt:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3277
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3278
    "Created: / 20-11-2006 / 16:38:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3279
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3280
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3281
findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3282
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3283
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3284
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3285
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3286
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3287
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3288
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3289
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3290
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3291
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3292
    self findPreviousForWhich:
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3293
	[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3294
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3295
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3296
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3297
		(thisSelector = sel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3298
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3299
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3300
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3301
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3302
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3303
findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3304
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3305
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3306
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3307
    self findPreviousWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3308
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3309
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3310
findPreviousForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3311
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3312
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3313
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3314
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3315
    "Modified: / 06-10-2006 / 11:01:38 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3316
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3317
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3318
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3319
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3320
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3321
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3322
        findNextOrPrevious:#previous 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3323
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3324
        startingAt:changeNrToStartSearch
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3325
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3326
    "Created: / 06-10-2006 / 11:01:09 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3327
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3328
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3329
findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3330
    "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
  3331
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3332
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3333
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3334
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3335
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3336
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3337
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3338
findPreviousWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3339
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3340
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3341
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3342
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3343
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3344
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3345
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3346
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3347
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3348
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3349
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3350
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3351
    self findPreviousForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3352
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3353
            |s |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3354
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3355
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3356
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3357
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3358
                or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3359
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3360
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3361
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3362
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3363
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3364
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3365
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3366
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3367
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3368
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3369
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3370
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3371
findSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3372
    "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
  3373
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3374
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3375
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3376
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3377
	current := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3378
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3379
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3380
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3381
	askForSearch:'Selector to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3382
	initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3383
	thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3384
			    |thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3385
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3386
			    thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3387
			    (thisSelector = searchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3388
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3389
			]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3390
	onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3391
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3392
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3393
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3394
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3395
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3396
findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3397
    |searchString directionHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3398
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3399
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3400
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3401
    searchString := codeView selection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3402
    searchString size == 0 ifTrue:[searchString := lastSearchString].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3403
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3404
    searchString := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3405
	askForSearchString:'String to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3406
	initialAnswer:(searchString ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3407
	directionInto:(directionHolder := ValueHolder new).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3408
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3409
    searchString size == 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3410
	^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3411
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3412
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3413
    directionHolder value == #backward ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3414
	self findPreviousWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3415
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3416
	self findNextWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3417
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3418
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3419
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3420
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3421
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3422
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3423
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3424
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3425
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3426
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  3427
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3428
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3429
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3430
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3431
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3432
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3433
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3434
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3435
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3436
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3437
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3438
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3439
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3440
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3441
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3442
openSettingsDialog
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3443
    |settingsList|
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3444
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3445
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3446
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3447
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3448
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3449
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3450
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3451
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3452
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3453
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3454
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3455
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3456
    SettingsDialog 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3457
        openWithList:settingsList 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3458
        label:(resources string:'Change Browser Settings').
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3459
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3460
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3461
setEnforcedNameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3462
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3463
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3464
    listOfKnownNameSpaces := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3465
    NameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3466
        allNameSpaces
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3467
            do:[:eachNameSpace |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3468
                listOfKnownNameSpaces add:eachNameSpace name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3469
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3470
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3471
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3472
    Dialog modifyingBoxWith:[:box |
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3473
        keepAsDefaultHolder := true asValue.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3474
        box verticalPanel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3475
            add:((CheckBox 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3476
                    label:(resources string:'Use this as default in the future')) 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3477
                    model:keepAsDefaultHolder).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3478
    ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3479
        nsName := Dialog
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3480
                request:(resources string:'When applying, new classes are created in nameSpace:')
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3481
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3482
                list:listOfKnownNameSpaces.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3483
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3484
    nsName isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3485
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3486
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3487
        applyInOriginalNameSpace value:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3488
        LastEnforcedNameSpace := enforcedNameSpace := nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3489
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3490
        applyInOriginalNameSpace value:false.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3491
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3492
        autoCompare value ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3493
            self doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3494
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3495
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3496
    KeepEnforcedNameSpace := keepAsDefaultHolder value.
11680
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3497
    codeView nameSpaceForDoits:enforcedNameSpace.
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3498
    diffView textViews do:[:each | each nameSpaceForDoits:enforcedNameSpace].
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3499
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3500
    "Modified: / 26-07-2012 / 23:06:23 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3501
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3502
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3503
setEnforcedPackage
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3504
    |pkg listOfKnownPackages|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3505
16207
2a88932c5bbf #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16092
diff changeset
  3506
    listOfKnownPackages := Smalltalk allPackageIDs.
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3507
"/    Smalltalk allClassesDo:[:eachClass |
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3508
"/                                |package|
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3509
"/
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3510
"/                                package := eachClass package.
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3511
"/                                package size > 0 ifTrue:[
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3512
"/                                    listOfKnownPackages add:package
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3513
"/                                ]
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3514
"/                           ].
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3515
    listOfKnownPackages := listOfKnownPackages asNewOrderedCollection sort.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3516
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3517
    pkg := Dialog
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3518
                request:'When applying, changes go into package:'
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3519
                initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3520
                list:listOfKnownPackages.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3521
    pkg size ~~ 0 ifTrue:[
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3522
        enforcedPackage := pkg
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3523
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3524
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3525
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3526
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3527
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3528
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3529
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3530
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3531
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3532
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3533
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3534
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3535
    self class autoSelectNext ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3536
        (changeNr <= self numberOfChanges) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3537
            self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3538
            ^ self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3539
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3540
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3541
    self clearCodeView.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3542
    self unselect.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3543
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3544
    "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
  3545
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3546
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3547
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3548
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3549
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3550
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3551
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3552
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3553
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3554
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3555
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3556
    |last|
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
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3559
    changeNr < last ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3560
        self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3561
    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3562
        last == 0 ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3563
            last := nil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3564
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3565
        self selectChange:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3566
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3567
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  3568
    "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
  3569
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3570
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3571
changeChunkAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3572
    ^ (changeInfoList at:index) chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3573
    "/ ^ changeChunks at:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3574
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3575
    "Created: / 01-05-2016 / 18:24:28 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3576
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3577
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3578
changeClassNameAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3579
    ^ (changeInfoList at:index) className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3580
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3581
    "Created: / 01-05-2016 / 18:28:13 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3582
    "Modified: / 01-05-2016 / 19:32:42 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3583
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3584
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3585
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3586
    "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
  3587
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3588
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3589
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3590
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3591
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3592
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3593
    ].
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3594
    (classesNotToBeAutoloaded includes:#all) ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3595
        ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3596
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3597
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3598
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3599
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3600
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3601
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3602
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3603
    ] ifFalse:[
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3604
        answer := Dialog 
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3605
                confirmWithCancel:(resources
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3606
                    stringWithCRs:'%1 is an autoloaded class.\I can only compare the method''s source if it''s loaded first.\\Shall the class be loaded now ?'
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3607
                    with:cls name allBold)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3608
                labels:(resources array:#('Cancel' 'No for All' 'No' 'Yes'))
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3609
                values:#(nil #never false true)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3610
                default:4.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3611
        answer isNil ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3612
            "cancel the operation"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3613
            AbortAllOperationRequest raise.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3614
            "not reached"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3615
        ].
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3616
        answer == #never ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3617
            classesNotToBeAutoloaded add:#all.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3618
            ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3619
        ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3620
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3621
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3622
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3623
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3624
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3625
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3626
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3627
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3628
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3629
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3630
    ^ false.
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3631
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3632
    "Modified: / 13-02-2017 / 19:57:15 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3633
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3634
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3635
checkSingleSelectedChange
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3636
    "just a helper, check for a single selection"
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3637
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3638
    |changeNr|
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3639
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3640
    (changeNr := self theSingleSelection) isNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3641
        self information:'Only possible if a single change is selected.'.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3642
        AbortSignal raise.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3643
        ^ nil.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3644
    ].
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3645
    ^ changeNr
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3646
!
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3647
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3648
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3649
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3650
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3651
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3652
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3653
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3654
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3655
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3656
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3657
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3658
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3659
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3660
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3661
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3662
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3663
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3664
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3665
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3666
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3667
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3668
currentSourceForParseTree:parseTree
12845
c8300977f648 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 12825
diff changeset
  3669
    |selector thisClass method mClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3670
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3671
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3672
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3673
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3674
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3675
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3676
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3677
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3678
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3679
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3680
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3681
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3682
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3683
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3684
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3685
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3686
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3687
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3688
            ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3689
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3690
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3691
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3692
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3693
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3694
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3695
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3696
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3697
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3698
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3699
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3700
            ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3701
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3702
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3703
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3704
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3705
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3706
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3707
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3708
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3709
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3710
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3711
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3712
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3713
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3714
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3715
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3716
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3717
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3718
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3719
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3720
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3721
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3722
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3723
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3724
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3725
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3726
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3727
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3728
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3729
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3730
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3731
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3732
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3733
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3734
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3735
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3736
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3737
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3738
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3739
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3740
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3741
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3742
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3743
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3744
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3745
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3746
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3747
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3748
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3749
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3750
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3751
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3752
                    ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3753
                        ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3754
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3755
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3756
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3757
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3758
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3759
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3760
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3761
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3762
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3763
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3764
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3765
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3766
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3767
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3768
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3769
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3770
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3771
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3772
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3773
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3774
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3775
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3776
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3777
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3778
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3779
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3780
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3781
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3782
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3783
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3784
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3785
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3786
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3787
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3788
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3789
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3790
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3791
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3792
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3793
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3794
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3795
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3796
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3797
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3798
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3799
            ownerClass isNil ifTrue:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3800
                ^ c'Cannot compare this change\n\n(owning class is not loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3801
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3802
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3803
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3804
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3805
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3806
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3807
            thisClass isLoaded ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3808
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3809
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3810
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3811
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3812
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3813
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3814
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3815
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  3816
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3817
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3818
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3819
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3820
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3821
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3822
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3823
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3824
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3825
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3826
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3827
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3828
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3829
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3830
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3831
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3832
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3833
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3834
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3835
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3836
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3837
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3838
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3839
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3840
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3841
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3842
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3843
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3844
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3845
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3846
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3847
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3848
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3849
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3850
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3851
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3852
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3853
parseExpression:chunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3854
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3855
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3856
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3857
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3858
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3859
parseExpression:text inNameSpace:nameSpace
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3860
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3861
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3862
    |parser parseTree|
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3863
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3864
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3865
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3866
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3867
19567
1ce7a325376d #REFACTORING by alkurz
alkurz
parents: 19520
diff changeset
  3868
    (text includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3869
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3870
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3871
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3872
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3873
    parser := Parser for:(ReadStream on:text).
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3874
    parser parserFlags 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3875
        allowQualifiedNames:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3876
        allowDollarInIdentifier:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3877
        allowParagraphInIdentifier:true.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3878
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3879
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3880
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3881
    ] do:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3882
        parseTree := parser 
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3883
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3884
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3885
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3886
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3887
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3888
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3889
    ^ parseTree
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3890
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3891
    "Modified: / 21-11-2016 / 23:25:48 / cg"
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3892
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3893
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3894
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3895
    "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
  3896
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3897
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3898
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3899
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3900
selectChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3901
    changeListView setSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3902
    self changeSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3903
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3904
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3905
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3906
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3907
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3908
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3909
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3910
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3911
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3912
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3913
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3914
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3915
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3916
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3917
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3918
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3919
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3920
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3921
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3922
setChangeList
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3923
    <resource: #obsolete>
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3924
    "update the selection-list;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3925
     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
  3926
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3927
    self updateChangeList
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3928
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3929
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3930
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3931
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3932
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3933
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3934
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3935
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3936
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3937
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3938
showNumberOfChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3939
    infoHolder value:(resources string:'%1 changes.' with:changeInfoList size).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3940
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3941
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3942
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3943
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3944
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3945
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3946
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3947
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3948
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3949
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3950
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3951
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3952
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3953
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3954
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3955
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3956
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3957
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3958
timeStampPrintStringOf:ts
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3959
    ^ ts printString
17838
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3960
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3961
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3962
     self basicNew timeStampPrintStringOf:(Timestamp now)
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3963
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3964
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3965
    "Modified (format): / 05-12-2017 / 15:08:48 / cg"
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3966
!
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3967
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3968
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3969
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3970
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3971
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3972
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3973
    "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
  3974
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3975
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3976
updateChangeList
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3977
    "update the selection-list;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3978
     called after the changeList has been modified"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3979
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3980
    |headerList|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3981
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3982
    headerList := changeInfoList collect:[:info | info headerLine].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3983
    changeListView setList:headerList expandTabs:false redraw:false.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3984
    changeListView invalidate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3985
    self showNumberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3986
    
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3987
    "/ changeListView deselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3988
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3989
    "Modified: / 01-05-2016 / 19:27:35 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3990
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3991
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3992
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3993
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3994
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3995
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3996
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3997
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3998
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3999
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4000
    "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
  4001
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4002
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4003
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4004
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4005
    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
  4006
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4007
    "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
  4008
     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
  4009
    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
  4010
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4011
    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
  4012
        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
  4013
            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
  4014
                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
  4015
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4016
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4017
    ] 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
  4018
        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
  4019
            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
  4020
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4021
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4022
                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
  4023
                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
  4024
                    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
  4025
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4026
                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
  4027
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4028
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4029
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4030
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4031
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4032
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4033
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4034
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4035
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4036
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4037
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4038
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4039
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4040
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4041
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4042
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4043
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4044
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4045
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4046
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4047
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4048
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4049
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4050
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4051
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4052
changeIsCheckinInfo:changeNr
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4053
    "return true, if a change is a snapShot info chunk"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4054
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4055
    ^ self changeIsSpecialInfo:changeNr anyOf:#('checkin')
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4056
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4057
    "Created: / 15-02-2019 / 11:44:33 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4058
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4059
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4060
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4061
    "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
  4062
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4063
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4064
    ^ (changeInfoList at:changeNr) isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4065
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4066
    "Created: / 06-02-1998 / 13:03:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4067
    "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
  4068
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4069
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4070
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4071
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4072
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4073
    ^ self changeIsSpecialInfo:changeNr anyOf:#('snapshot')
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4074
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4075
    "Modified: / 01-05-2016 / 18:25:25 / cg"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4076
    "Modified: / 15-02-2019 / 11:46:55 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4077
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4078
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4079
changeIsSpecialInfo:changeNr anyOf:wordsToCheck
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4080
    "return true, if a change is an info chunk
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4081
     with info being any from wordsToCheck 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4082
     (i.e. this should contain something like 'checkin', snapshot' etc.)"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4083
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4084
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4085
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4086
    (changeInfoList at:changeNr) className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4087
    "(self classNameOfChange:changeNr)" isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4088
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4089
         get the chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4090
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4091
        chunk := self changeChunkAt:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4092
        "mhmh - empty ??"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4093
        chunk notNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4094
            (chunk startsWith:'''---') ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4095
                words := chunk asCollectionOfWords.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4096
                words size > 2 ifTrue:[
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4097
                    (wordsToCheck includes:(words at:2)) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4098
                        ^ true
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4099
                    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4100
                ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4101
            ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4102
        ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4103
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4104
    ^ false
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4105
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4106
    "Created: / 15-02-2019 / 11:46:36 / Claus Gittinger"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4107
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4108
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4109
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4110
    "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
  4111
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4112
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4113
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4114
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4115
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4116
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4117
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4118
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4119
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4120
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4121
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4122
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4123
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4124
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4125
            recTree := recTree receiver
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4126
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4127
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4128
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4129
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4130
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4131
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4132
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4133
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4134
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4135
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4136
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4137
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4138
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4139
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4140
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4141
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4142
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4143
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4144
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4145
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4146
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4147
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4148
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4149
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4150
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4151
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4152
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4153
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4154
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4155
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4156
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4157
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4158
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4159
    sel := fullParseTree selector.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4160
"/    (Class definitionSelectors includes:sel) ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4161
"/        ^ nil
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4162
"/    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4163
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4164
    arg1Tree := fullParseTree arg1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4165
    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4166
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4167
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4168
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4169
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4170
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4171
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4172
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4173
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4174
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4175
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4176
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4177
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4178
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4179
    "Created: / 08-03-2012 / 09:34:04 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4180
    "Modified: / 15-02-2019 / 12:08:55 / Claus Gittinger"
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4181
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4182
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4183
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4184
    "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
  4185
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4186
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4187
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4188
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4189
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4190
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4191
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4192
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4193
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4194
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4195
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4196
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4197
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4198
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4199
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4200
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4201
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4202
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4203
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4204
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4205
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4206
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4207
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4208
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4209
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4210
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4211
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4212
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4213
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4214
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4215
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4216
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4217
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4218
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4219
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4220
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4221
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4222
    |recTree arg1Tree|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4223
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4224
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4225
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4226
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4227
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4228
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4229
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4230
        arg1Tree := aParseTree arg1.
13663
497ca003a6dc class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13651
diff changeset
  4231
        (arg1Tree notNil and:[arg1Tree isVariable]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4232
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4233
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4234
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4235
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4236
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4237
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4238
    "Created: / 08-03-2012 / 09:36:59 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4239
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4240
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4241
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4242
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4243
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4244
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4245
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4246
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4247
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4248
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4249
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4250
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4251
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4252
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4253
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4254
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4255
            arg2Tree := aParseTree arg2.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4256
            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4257
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4258
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4259
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4260
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4261
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4262
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4263
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4264
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4265
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4266
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4267
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4268
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4269
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4270
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4271
     (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
  4272
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4273
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4274
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4275
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4276
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4277
    (name endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4278
        name := name copyButLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4279
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4280
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4281
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4282
    "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
  4283
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4284
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4285
extractSelectorOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4286
    "return a method-changes selector, or nil if it's not a methodChange"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4287
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4288
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4289
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4290
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4291
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4292
        (self classNameOfChange:changeNr) notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4293
            chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4294
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4295
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4296
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4297
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4298
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4299
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4300
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4301
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4302
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4303
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4304
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4305
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4306
                sel := aParseTree arguments at:1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4307
                sel isLiteral ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4308
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4309
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4310
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4311
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4312
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4313
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4314
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4315
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4316
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4317
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4318
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4319
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4320
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4321
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4322
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4323
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4324
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4325
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4326
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4327
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4328
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4329
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4330
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4331
    "Created: / 24-11-1995 / 14:30:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4332
    "Modified: / 01-05-2016 / 18:25:39 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4333
    "Modified (comment): / 13-02-2017 / 19:57:20 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4334
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4335
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4336
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4337
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4338
     (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
  4339
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4340
    |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
  4341
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4342
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4343
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4344
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4345
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4346
    name := self changeClassNameAt:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4347
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4348
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4349
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4350
    ].
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
    prevMethodDefNr := changeNr.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4353
    [ (changeInfoList at:prevMethodDefNr) isFollowupChange ] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4354
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4355
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4356
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4357
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4358
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4359
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4360
    chunk := self changeChunkAt:prevMethodDefNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4361
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4362
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4363
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4364
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4365
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4366
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4367
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4368
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4369
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4370
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4371
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4372
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4373
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4374
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4375
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4376
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4377
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4378
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4379
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4380
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4381
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4382
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4383
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4384
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4385
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4386
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4387
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4388
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4389
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4390
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4391
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4392
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4393
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4394
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4395
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4396
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  4397
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4398
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4399
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4400
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4401
        ^ 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
  4402
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4403
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4404
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4405
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4406
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4407
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4408
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4409
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4410
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4411
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4412
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4413
     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
  4414
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4415
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4416
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4417
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4418
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4419
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4420
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4421
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4422
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4423
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4424
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4425
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4426
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4427
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4428
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4429
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4430
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  4431
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4432
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4433
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  4434
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4435
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4436
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4437
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4438
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4439
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4440
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4441
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4442
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4443
     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
  4444
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4445
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  4446
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4447
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4448
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4449
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4450
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4451
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4452
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4453
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4454
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4455
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4456
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4457
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4458
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4459
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4460
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4461
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4462
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4463
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4464
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4465
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4466
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4467
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4468
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4469
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4470
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4471
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4472
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4473
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4474
    "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
  4475
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4476
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4477
isClassDefinitionChange:changeNr
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4478
    |changeStream chunk fullParseTree sel|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4479
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4480
    "/ must parse the full changes text, to get privacy information.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4481
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4482
    changeStream := self streamForChange:changeNr.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4483
    changeStream isNil ifTrue:[ ^ false].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4484
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4485
    chunk := changeStream nextChunk.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4486
    changeStream close.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4487
    fullParseTree := self parseExpression:chunk.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4488
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4489
        ^ false
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4490
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4491
    fullParseTree isMessage ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4492
        ^ false
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4493
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4494
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4495
    sel := fullParseTree selector.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4496
    ^ (Class definitionSelectors includes:sel).
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4497
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4498
    "Created: / 15-02-2019 / 12:08:44 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4499
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4500
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4501
namespaceOfChange:changeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4502
    "return the namespace of a change or nil"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4503
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4504
    |className namespace idx|
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4505
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4506
    className := self classNameOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4507
    className isNil ifTrue:[ ^ nil ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4508
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4509
    idx := className indexOfSubCollection:'::'.
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4510
    idx == 0 ifTrue:[ ^ nil ].
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4511
    namespace := className copyTo:idx-1.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4512
    ^  namespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4513
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4514
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4515
numberOfChanges
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4516
    ^ changeInfoList size
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4517
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4518
    "Created: / 03-12-1995 / 18:15:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4519
    "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
  4520
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4521
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4522
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4523
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4524
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4525
     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
  4526
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  4527
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4528
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4529
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4530
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4531
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4532
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4533
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4534
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4535
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4536
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4537
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4538
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4539
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4540
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4541
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4542
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4543
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4544
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4545
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4546
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4547
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4548
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4549
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4550
"/        ].
13851
6a1a69cacb7b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
  4551
"/        ^ name copyButLast:6
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4552
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4553
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4554
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4555
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4556
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4557
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4558
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4559
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4560
     - 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
  4561
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4562
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4563
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4564
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4565
    name := self changeClassNameAt:changeNr.
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4566
    name isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4567
        name := self fullClassNameOfChange:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4568
        name isNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4569
            (changeInfoList at:changeNr) className:#nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4570
        ].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4571
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4572
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4573
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4574
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4575
    "Created: / 05-11-2001 / 18:09:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4576
    "Modified: / 01-05-2016 / 19:24:53 / cg"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4577
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4578
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4579
selectorOfMethodCategoryChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4580
    "return a methodCategory-change's selector, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4581
     or nil if it's not a methodCategoryChange"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4582
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4583
    (changeInfoList at:changeNr) isMethodCategoryChange ifFalse:[^ nil].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4584
    ^ (changeInfoList at:changeNr) selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4585
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4586
    "Modified: / 01-05-2016 / 19:26:21 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4587
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4588
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4589
selectorOfMethodChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4590
    "return a method-change's selector, 
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4591
     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
  4592
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4593
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4594
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4595
    changeInfoList size >= changeNr ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4596
        (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[^ nil].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4597
        sel := (changeInfoList at:changeNr) selector.
15652
788f4c9d0b07 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15450
diff changeset
  4598
        sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4599
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4600
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4601
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4602
    sel notNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4603
        self assert:(changeInfoList at:changeNr) isMethodCategoryChange not.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4604
        (changeInfoList at:changeNr) selector:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4605
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4606
    ^ sel
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4607
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4608
    "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
  4609
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4610
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4611
sourceOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4612
    "return a method-changes source code, or nil if it's not a methodChange."
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4613
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4614
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4615
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4616
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4617
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4618
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4619
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4620
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4621
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4622
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4623
        chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4624
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4625
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4626
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4627
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4628
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4629
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4630
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4631
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4632
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4633
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4634
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4635
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4636
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4637
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4638
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4639
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4640
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4641
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4642
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4643
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4644
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4645
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4646
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4647
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4648
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4649
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4650
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4651
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4652
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4653
    "Created: / 05-09-1996 / 17:11:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4654
    "Modified: / 01-05-2016 / 18:25:53 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4655
    "Modified (comment): / 13-02-2017 / 19:57:25 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4656
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4657
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4658
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4659
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4660
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4661
    |aStream encoding|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4662
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4663
    (changeNr between:1 and:changeInfoList size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4664
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4665
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4666
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4667
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4668
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4669
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4670
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4671
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4672
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4673
        aStream := EncodedStream stream:aStream encoding:encodingIfKnown.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4674
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4675
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4676
    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
  4677
    ^ aStream
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4678
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4679
    "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
  4680
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4681
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4682
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4683
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4684
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4685
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4686
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4687
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4688
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4689
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4690
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4691
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4692
    "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
  4693
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4694
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4695
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4696
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4697
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4698
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4699
    (info := f info) isNil ifTrue:[
16092
mawalch
parents: 16022
diff changeset
  4700
        self newLabel:'(unaccessible)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4701
    ] ifFalse:[
16092
mawalch
parents: 16022
diff changeset
  4702
        (info modificationTime) > changeFileTimestamp ifTrue:[
mawalch
parents: 16022
diff changeset
  4703
            self newLabel:'(outdated)'.
mawalch
parents: 16022
diff changeset
  4704
            autoUpdate value ifTrue:[
mawalch
parents: 16022
diff changeset
  4705
                self doUpdate
mawalch
parents: 16022
diff changeset
  4706
            ]
mawalch
parents: 16022
diff changeset
  4707
        ] ifFalse:[
mawalch
parents: 16022
diff changeset
  4708
            self newLabel:''
mawalch
parents: 16022
diff changeset
  4709
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4710
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4711
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4712
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4713
    "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
  4714
    "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
  4715
    "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
  4716
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4717
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4718
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4719
    "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
  4720
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4721
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4722
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4723
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4724
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4725
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4726
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4727
    "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
  4728
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4729
     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
  4730
     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
  4731
        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
  4732
                '+' -> 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
  4733
                '-' -> 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
  4734
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4735
                '=' -> 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
  4736
                '~' -> 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
  4737
        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
  4738
        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
  4739
                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
  4740
                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
  4741
                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
  4742
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4743
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4744
     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
  4745
     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
  4746
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4747
    |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
  4748
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4749
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  4750
    askedForEditingClassSource := false.
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4751
    changeInfoList := #().     "make sure, that it is non-nil on error"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4752
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4753
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4754
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4755
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4756
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4757
    (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
  4758
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4759
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4760
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4761
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  4762
    f exists ifFalse:[^ self].
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4763
    inStream := EncodedStream decodedStreamFor:(f readStream).
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  4764
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4765
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  4766
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  4767
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4768
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4769
    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
  4770
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4771
         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
  4772
         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
  4773
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4774
        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
  4775
            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
  4776
            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
  4777
            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
  4778
            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
  4779
        ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4780
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4781
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4782
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4783
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4784
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  4785
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4786
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4787
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4788
            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
  4789
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4790
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4791
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4792
            reader noColoring:(NoColoring == true).
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4793
            
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4794
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4795
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4796
            editingClassSource := reader thisIsAClassSource.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4797
            changeInfoList := reader changeInfo.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4798
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4799
            self showNumberOfChanges.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4800
            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
  4801
        ] 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
  4802
            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
  4803
            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
  4804
                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
  4805
                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
  4806
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4807
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4808
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4809
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4810
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4811
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4812
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4813
    "Modified: / 01-05-2016 / 19:13:09 / cg"
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4814
    "Modified (comment): / 22-01-2018 / 18:53:40 / stefan"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4815
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4816
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4817
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4818
    "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
  4819
     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
  4820
     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
  4821
     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
  4822
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4823
     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
  4824
     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
  4825
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4826
    |inFilename inStream outStream stamp encoding tempFilename|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4827
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4828
    editingClassSource ifTrue:[
19520
32c1e071b13c #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19512
diff changeset
  4829
        (self confirm:c'You are editing a classes sourceFile (not a changeFile) !!\n\nAre you certain, you want to overwrite it ?')
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
  4830
        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
  4831
            ^ 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
  4832
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4833
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4834
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4835
    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
  4836
    [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4837
        inStream := inFilename readStream.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4838
    ] on:OpenError do:[:ex|
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4839
        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
  4840
        ^ 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
  4841
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4842
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4843
        [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4844
            outStream := FileStream newTemporaryIn:inFilename directory.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4845
            tempFilename := outStream fileName.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4846
        ] on:OpenError do:[:ex|
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4847
            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
  4848
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4849
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4850
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4851
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4852
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4853
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4854
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4855
        encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4856
            inStream := EncodedStream stream:inStream encoding:encoding.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4857
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4858
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  4859
        self withWriteCursorDo:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4860
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4861
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4862
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4863
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4864
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4865
                outStream close.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4866
                tempFilename remove.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4867
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4868
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4869
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4870
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4871
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4872
                1 to:nChanges do:[:index |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4873
                    inStream position:((changeInfoList at:index) position)-1.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4874
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4875
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4876
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4877
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4878
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4879
                        (stamp := (changeInfoList at:index) timestamp) notNil ifTrue:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4880
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4881
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4882
                        ].
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
  4883
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4884
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4885
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4886
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4887
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4888
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4889
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4890
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4891
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4892
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4893
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4894
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4895
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4896
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4897
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4898
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4899
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4900
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4901
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4902
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4903
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4904
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4905
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4906
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4907
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4908
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4909
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4910
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4911
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4912
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4913
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4914
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4915
                    ]
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
  4916
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4917
                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
  4918
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4919
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4920
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4921
            inFilename renameTo:inFilename asBackupFilename.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4922
            tempFilename renameTo:changeFileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4923
            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
  4924
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4925
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4926
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4927
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4928
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4929
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4930
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4931
    "Modified: / 01-05-2016 / 19:30:34 / cg"
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4932
    "Modified: / 09-02-2017 / 13:30:57 / stefan"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4933
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4934
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4935
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4936
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4937
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4938
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4939
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4940
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4941
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4942
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4943
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4944
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4945
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4946
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4947
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4948
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4949
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4950
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4951
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4952
        sawExcla := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4953
        chunk := self changeChunkAt:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4954
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4955
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4956
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4957
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4958
    chunk withoutSeparators isEmpty ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  4959
        self proceedableError:'Empty chunk - should not happen'.
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4960
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4961
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4962
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4963
    fileName := aFileNameOrFileNameString asFilename.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4964
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4965
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4966
        outStream := fileName readWriteStream.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4967
    ] on:OpenError do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4968
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4969
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4970
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4971
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  4972
    outStream fileSize == 0 ifTrue:[
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4973
        encoding := #utf8.
15090
27f730f4fd5b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15087
diff changeset
  4974
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4975
    ] ifFalse:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4976
        encoding := CharacterEncoder guessEncodingOfStream:outStream.
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4977
    ].
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4978
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4979
    encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4980
        outStream := EncodedStream stream:outStream encoding:encoding.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4981
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4982
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4983
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4984
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4985
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4986
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4987
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4988
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4989
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4990
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4991
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4992
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4993
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4994
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4995
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4996
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4997
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4998
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4999
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  5000
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5001
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5002
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5003
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5004
    "Modified: / 01-05-2016 / 18:25:00 / cg"
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  5005
    "Modified: / 24-05-2018 / 14:54:56 / Claus Gittinger"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5006
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5007
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5008
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
  5009
    "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
  5010
     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
  5011
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  5012
    |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
  5013
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5014
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5015
    aStream := self streamForChange:changeNr.
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  5016
    aStream isNil ifTrue:[^ false].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5017
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  5018
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  5019
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5020
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5021
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5022
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5023
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5024
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5025
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5026
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5027
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5028
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5029
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5030
            "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
  5031
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5032
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5033
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5034
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5035
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5036
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5037
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5038
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5039
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5040
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  5041
            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
  5042
                "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
  5043
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5044
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5045
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5046
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5047
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5048
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5049
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5050
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5051
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5052
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5053
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5054
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5055
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5056
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5057
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5058
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5059
                            ] do:[
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5060
                                |skip|
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5061
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5062
                                skip := false.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5063
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5064
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5065
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5066
                                    methodsForChunk := self changeChunkAt:changeNr.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5067
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5068
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5069
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5070
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5071
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5072
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5073
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5074
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5075
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5076
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5077
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5078
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5079
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5080
                                        orgClassName := className.
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5081
                                        classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5082
                                            className := classNameMap at:className ifAbsent:[className]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5083
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5084
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5085
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5086
                                            (ownerName endsWith:$:) ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  5087
                                                ownerName := ownerName copyButLast:1.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5088
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5089
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5090
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5091
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5092
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5093
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5094
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5095
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5096
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5097
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5098
                                        changeClass isNil ifTrue:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5099
                                            changeClass := Smalltalk classNamed:className.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5100
                                        ].
18975
7e6179cc8f17 #BUGFIX by alkurz
alkurz
parents: 18596
diff changeset
  5101
                                        [changeClass isNil and:[className notNil]] whileTrue:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5102
                                            (NameSpace allNameSpaces
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  5103
                                                contains:[:ns | (nsClass := (ns at:className asSymbol)) notNil])
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5104
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5105
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5106
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5107
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5108
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5109
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5110
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5111
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5112
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5113
                                            skip := false.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5114
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5115
                                            Dialog modifyingBoxWith:[:box |
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  5116
                                                "/ self halt.
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5117
                                                box 
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5118
                                                    addButton:(Button label:'Skip' action:[skip := true. box hide])
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5119
                                                    after:box noButton
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5120
                                            ] do:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5121
                                                className := Dialog
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  5122
                                                            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
  5123
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5124
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5125
                                            skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5126
                                                className isNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5127
                                                    AbortAllOperationRequest raise.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5128
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5129
                                                className isEmpty ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5130
                                                    ^ false
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5131
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5132
                                                alternativeClass := Smalltalk classNamed:className.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5133
                                                alternativeClass notNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5134
                                                    changeClass := alternativeClass
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5135
                                                ]
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5136
                                            ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5137
                                        ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5138
                                        skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5139
                                            methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5140
                                            methodsForChunk := changeClass name , methodsForChunk.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5141
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5142
                                    ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5143
                                    skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5144
                                        reader := Compiler evaluate:methodsForChunk notifying:self.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5145
                                        reader fileInFrom:aStream notifying:self passChunk:false single:true.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5146
                                    ]                        
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5147
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5148
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5149
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5150
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5151
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5152
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5153
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5154
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5155
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5156
    "/
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  5157
    "/ if I am showing the changes file, don't update it
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5158
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5159
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5160
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5161
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5162
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5163
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5164
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5165
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5166
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5167
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5168
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5169
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5170
    "Modified: / 01-05-2016 / 18:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5171
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5172
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5173
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5174
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5175
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5176
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5177
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5178
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5179
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5180
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5181
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5182
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5183
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5184
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5185
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5186
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5187
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  5188
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5189
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5190
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5191
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5192
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5193
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5194
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5195
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5196
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5197
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5198
compareChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5199
    "compare a change with the current (in-image) version; 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5200
     show the result of the compare (as dialog)"
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5201
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5202
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5203
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5204
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5205
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5206
    "compare a change with current version.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5207
     Return the result of the compare 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5208
        same -> true, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5209
        different -> false, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5210
        uncomparable -> nil.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5211
     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
  5212
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5213
    |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
  5214
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5215
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5216
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5217
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5218
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5219
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5220
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  5221
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5222
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5223
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5224
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5225
        chunk := self changeChunkAt:changeNr.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5226
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5227
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5228
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5229
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5230
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  5231
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5232
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5233
        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
  5234
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5235
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5236
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5237
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5238
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5239
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5240
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5241
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5242
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5243
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5244
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5245
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5246
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5247
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5248
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5249
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5250
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5251
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5252
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5253
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5254
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5255
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5256
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5257
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5258
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5259
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5260
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5261
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5262
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5263
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5264
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5265
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5266
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5267
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5268
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5269
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5270
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5271
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5272
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5273
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5274
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5275
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5276
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5277
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5278
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5279
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5280
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5281
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5282
                        (selector endsWith:':privateIn:') ifTrue:[
11475
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5283
                            Parser undefinedVariableError catch:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5284
                                ownerClass := (parseTree arguments at:5) evaluate.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5285
                                ownerClass isBehavior ifTrue:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5286
                                    thisClass := ownerClass privateClassesAt:thisClassSym.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5287
                                ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5288
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5289
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5290
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5291
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5292
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5293
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5294
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5295
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5296
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5297
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5298
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5299
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5300
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5301
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5302
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5303
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5304
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5305
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5306
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5307
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5308
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5309
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5310
                                            ((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
  5311
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5312
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5313
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5314
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5315
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5316
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5317
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5318
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5319
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5320
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5321
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5322
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5323
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5324
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5325
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5326
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5327
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5328
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5329
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5330
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5331
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5332
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5333
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5334
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5335
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5336
                                        isSame := false.
12825
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5337
                                        addedVars := varsInChange reject:[:eachVar | (varsHere includes:eachVar)].
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5338
                                        removedVars := varsHere reject:[:eachVar | (varsInChange includes:eachVar)].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5339
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5340
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5341
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5342
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5343
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5344
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5345
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5346
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5347
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5348
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5349
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5350
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5351
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5352
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5353
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5354
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5355
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5356
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5357
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5358
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5359
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5360
    ] ifTrue:[
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5361
        Class nameSpaceQuerySignal 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5362
            answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5363
            do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5364
                parseTree := self parseExpression:chunk.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5365
            ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5366
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5367
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5368
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5369
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5370
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5371
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5372
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5373
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5374
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5375
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5376
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5377
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5378
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5379
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5380
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5381
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5382
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5383
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5384
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5385
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5386
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5387
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5388
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5389
                thisClass notNil ifTrue:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5390
                    (thisClass isKindOf:UndefinedVariable) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5391
                        |thisName path|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5392
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5393
                        thisName := thisClass name.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5394
                        classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5395
                            thisName := classNameMap at:thisName ifAbsent:[thisName]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5396
                        ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5397
                        path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5398
                        1 to:path size do:[:length |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5399
                            |ownerName owner|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5400
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5401
                            ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5402
                            owner := Smalltalk loadedClassNamed:ownerName.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5403
                            (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5404
                                self checkClassIsLoaded:owner.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5405
                            ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5406
                        ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5407
                        thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5408
                    ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5409
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5410
                    thisClass isBehavior ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5411
                        parseTree selector == #methodsFor ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5412
                            cat := 'Dolphin methods'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5413
                        ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5414
                            parseTree selector == #methods ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5415
                                cat := 'STV methods'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5416
                            ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5417
                                cat := parseTree arg1 evaluate.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5418
                            ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5419
                        ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5420
                        newSource := aStream nextChunk.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5421
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5422
                        isSame := self 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5423
                                    compareMethodSource:newSource 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5424
                                    withVersionInClass:thisClass 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5425
                                    into:[:outcomeResult :beepResult :oldSourceResult| 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5426
                                        outcome := outcomeResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5427
                                        beep := beepResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5428
                                        oldSource := oldSourceResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5429
                                    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5430
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5431
                        isSame isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5432
                            showDiff := false.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5433
                        ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5434
                            showDiff := isSame not.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5435
                        ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5436
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5437
                        doShowResult ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5438
                            (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5439
                                d := DiffCodeView
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5440
                                        openOn:oldSource label:(resources string:'Current version (in image)')
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5441
                                        and:newSource label:(resources string:'Change version').
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5442
                                d label:'method differences'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5443
                            ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5444
                        ]
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5445
                    ] ifFalse:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5446
                        beep := true.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5447
                        outcome := 'Class does not exist.'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5448
                        isSame := nil.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5449
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5450
                ]
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5451
            ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5452
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5453
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5454
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5455
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5456
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5457
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5458
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5459
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5460
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5461
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5462
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5463
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5464
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5465
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5466
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5467
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5468
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5469
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5470
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5471
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5472
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5473
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5474
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5475
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5476
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5477
    "Modified: / 01-05-2016 / 18:25:32 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5478
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5479
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5480
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5481
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5482
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5483
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5484
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5485
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5486
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5487
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5488
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5489
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5490
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5491
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5492
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5493
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5494
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5495
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5496
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5497
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5498
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5499
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5500
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5501
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5502
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5503
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5504
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5505
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5506
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5507
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5508
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5509
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5510
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5511
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5512
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5513
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5514
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5515
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5516
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5517
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5518
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5519
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5520
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5521
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5522
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5523
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5524
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5525
compareMethodSource:newSource withVersionInClass:thisClass into:aThreeArgBlock
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5526
    "returns true/false/nil if same,different,undecided;
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5527
     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
  5528
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5529
    <ignore: RBReturnsBooleanAndOtherRule rationale: 'done by purpose' author: 'cg'>
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5530
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5531
    |parser sel oldMethod oldSource outcome t1 t2 isLoaded|
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5532
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5533
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5534
    do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5535
        parser := Parser parseMethod:newSource in:thisClass.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5536
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5537
    (parser isNil or:[parser == #Error]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5538
        outcome := 'Change is unparsable (parse error).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5539
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5540
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5541
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5542
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5543
    sel := parser selector.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5544
    oldMethod := thisClass compiledMethodAt:sel.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5545
    oldMethod isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5546
        (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5547
            outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5548
        ] ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5549
            outcome := 'Method does not exist.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5550
        ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5551
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5552
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5553
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5554
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5555
    oldSource := oldMethod source.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5556
    oldSource isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5557
        outcome := 'No source for compare.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5558
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5559
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5560
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5561
    (oldSource = newSource) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5562
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5563
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5564
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5565
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5566
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5567
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5568
    "/ compare for tabulator <-> space changes
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5569
    "/ before showing diff ...
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5570
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5571
    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5572
    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5573
    t1 = t2 ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5574
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5575
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5576
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5577
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5578
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5579
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5580
    "/ check if only historyLine diffs
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5581
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5582
    (HistoryManager notNil
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5583
    and:[HistoryManager isActive]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5584
        (HistoryManager withoutHistoryLines:newSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5585
        =
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5586
        (HistoryManager withoutHistoryLines:oldSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5587
        ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5588
            outcome := 'Same source (history only)'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5589
            aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5590
            ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5591
        ]
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5592
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5593
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5594
    outcome := 'Source changed.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5595
    aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5596
    ^ false.
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5597
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5598
    "Modified: / 16-07-2017 / 13:32:05 / cg"
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5599
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5600
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5601
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5602
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5603
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5604
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5605
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5606
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5607
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5608
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5609
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5610
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5611
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5612
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5613
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5614
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5615
                    ^ 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
  5616
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5617
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5618
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5619
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5620
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5621
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5622
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5623
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5624
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5625
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5626
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5627
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5628
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5629
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5630
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5631
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5632
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5633
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5634
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5635
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5636
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5637
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5638
                ^ 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
  5639
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5640
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5641
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5642
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5643
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5644
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5645
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5646
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5647
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5648
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5649
     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
  5650
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5651
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5652
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5653
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5654
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5655
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5656
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5657
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5658
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5659
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5660
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5661
     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
  5662
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5663
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5664
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5665
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5666
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5667
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5668
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5669
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5670
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5671
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5672
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  5673
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5674
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5675
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5676
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5677
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5678
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5679
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5680
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5681
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5682
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5683
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5684
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5685
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5686
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5687
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5688
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5689
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5690
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5691
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5692
        "
16877
06db0d151de3 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 16478
diff changeset
  5693
        str := WriteStream on:''.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5694
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5695
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5696
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5697
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5698
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5699
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5700
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5701
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5702
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5703
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5704
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5705
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5706
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5707
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5708
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5709
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5710
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5711
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5712
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5713
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5714
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5715
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5716
            numChanges to:1 by:-1 do:[:changeNr |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5717
                aStream position:((changeInfoList at:changeNr) position)-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5718
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5719
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5720
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5721
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5722
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5723
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5724
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5725
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5726
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5727
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5728
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5729
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5730
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5731
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5732
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5733
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5734
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5735
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5736
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5737
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5738
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5739
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5740
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5741
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5742
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5743
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5744
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5745
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5746
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5747
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5748
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5749
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5750
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5751
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5752
                                ]
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5753
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5754
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5755
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5756
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5757
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5758
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5759
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5760
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5761
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5762
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5763
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5764
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5765
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5766
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5767
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5768
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5769
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5770
                                types at:changeNr put:#removeSelector
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5771
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5772
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5773
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5774
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5775
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5776
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5777
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5778
                            (chunk startsWith:snapshotPrefix) ifTrue:[
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  5779
                                str := chunk readStream position:snapshotNameIndex-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5780
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5781
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5782
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5783
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5784
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5785
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5786
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5787
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5788
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5789
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5790
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5791
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5792
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5793
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5794
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5795
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5796
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5797
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5798
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5799
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5800
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5801
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5802
         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
  5803
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5804
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5805
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5806
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5807
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5808
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5809
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5810
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5811
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5812
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5813
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5814
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5815
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5816
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5817
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5818
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5819
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5820
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5821
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5822
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5823
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5824
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5825
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5826
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5827
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5828
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5829
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5830
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5831
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5832
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5833
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5834
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5835
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5836
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5837
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5838
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5839
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5840
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5841
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5842
        (deleteSet size > 0) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5843
            self unselect.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5844
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5845
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5846
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5847
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5848
            ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5849
            self updateChangeList.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5850
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5851
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5852
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5853
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5854
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5855
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5856
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5857
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5858
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5859
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5860
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5861
    "Created: / 19-11-2001 / 22:03:42 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5862
    "Modified: / 01-05-2016 / 19:23:54 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5863
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5864
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5865
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5866
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5867
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5868
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5869
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5870
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5871
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5872
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5873
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5874
    self unselect.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5875
    stop to:start by:-1 do:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5876
        self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5877
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  5878
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5879
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5880
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5881
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5882
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5883
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5884
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  5885
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5886
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5887
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5888
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5889
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5890
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5891
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5892
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5893
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5894
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5895
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5896
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5897
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5898
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5899
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5900
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5901
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  5902
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5903
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5904
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5905
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5906
"/    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5907
"/    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5908
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5909
"/    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5910
"/    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5911
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5912
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5913
    "Modified: / 01-05-2016 / 19:20:40 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5914
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5915
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5916
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
  5917
    "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
  5918
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5919
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5920
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5921
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5922
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5923
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5924
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5925
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5926
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5927
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5928
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5929
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5930
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5931
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5932
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5933
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5934
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5935
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5936
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5937
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5938
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5939
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5940
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5941
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5942
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5943
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5944
    [index >= start] whileTrue:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5945
        thisClassName := self realClassNameOfChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5946
        thisClassName = aClassName ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5947
            (self selectorOfMethodChange:index) == selector ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5948
                self silentDeleteChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5949
                numDeleted := numDeleted + 1.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5950
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5951
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5952
        index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5953
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5954
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5955
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5956
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5957
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5958
    "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
  5959
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5960
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5961
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5962
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5963
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5964
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5965
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5966
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5967
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5968
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5969
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5970
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5971
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5972
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5973
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5974
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5975
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5976
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5977
silentDeleteChangesForNamespace:aNamespace from:start to:stop
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5978
    "delete changes for a given namespace in a range.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5979
     Return the number of deleted changes."
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5980
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5981
    |thisNamespace index numDeleted|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5982
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5983
    numDeleted := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5984
    index := stop.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5985
    [index >= start] whileTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5986
        thisNamespace := self namespaceOfChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5987
        thisNamespace = aNamespace ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5988
            self silentDeleteChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5989
            numDeleted := numDeleted + 1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5990
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5991
        index := index - 1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5992
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5993
    ^ numDeleted
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5994
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5995
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  5996
silentDeleteCheckinInfosFor:aClassName from:start to:stop
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  5997
    "delete checkn infos for given class in a range.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  5998
     Return the number of deleted changes."
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  5999
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6000
    |thisClassName index numDeleted|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6001
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6002
    numDeleted := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6003
    index := stop.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6004
    [index >= start] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6005
        thisClassName := self realClassNameOfChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6006
        thisClassName = aClassName ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6007
            (self changeIsCheckinInfo:index) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6008
                self silentDeleteChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6009
                numDeleted := numDeleted + 1.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6010
            ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6011
        ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6012
        index := index - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6013
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6014
    ^ numDeleted
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6015
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6016
    "Created: / 15-02-2019 / 12:23:17 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6017
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6018
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6019
silentDeleteClassDefinitionChangesFor:aClassName from:start to:stop
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6020
    "delete class definition changes for given class in a range.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6021
     Return the number of deleted changes."
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6022
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6023
    |thisClassName index numDeleted|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6024
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6025
    numDeleted := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6026
    index := stop.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6027
    [index >= start] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6028
        thisClassName := self realClassNameOfChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6029
        thisClassName = aClassName ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6030
            (self isClassDefinitionChange:index) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6031
                self silentDeleteChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6032
                numDeleted := numDeleted + 1.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6033
            ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6034
        ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6035
        index := index - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6036
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6037
    ^ numDeleted
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6038
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6039
    "Created: / 15-02-2019 / 12:12:19 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6040
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6041
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6042
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6043
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6044
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6045
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6046
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6047
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6048
"/    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6049
"/    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6050
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6051
"/    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6052
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6053
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6054
    "Created: / 07-03-1997 / 16:28:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6055
    "Modified: / 26-02-1998 / 18:20:48 / stefan"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6056
    "Modified: / 01-05-2016 / 19:20:59 / cg"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6057
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6058
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6059
silentDeleteMethodCategoryChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6060
    "delete method category changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6061
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6062
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6063
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6064
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6065
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6066
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6067
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6068
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6069
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6070
            (self selectorOfMethodCategoryChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6071
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6072
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6073
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6074
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6075
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6076
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6077
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6078
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6079
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6080
silentDeleteMethodChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6081
    "delete method changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6082
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6083
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6084
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6085
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6086
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6087
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6088
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6089
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6090
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6091
            (self selectorOfMethodChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6092
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6093
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6094
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6095
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6096
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6097
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6098
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6099
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6100
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6101
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6102
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6103
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6104
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6105
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6106
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6107
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6108
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6109
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6110
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6111
    |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
  6112
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6113
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6114
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6115
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6116
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6117
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6118
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6119
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6120
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6121
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6122
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6123
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6124
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6125
        chunk := self changeChunkAt:changeNr.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6126
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6127
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6128
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6129
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6130
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6131
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6132
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6133
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6134
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6135
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6136
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6137
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6138
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6139
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6140
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6141
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6142
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6143
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  6144
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6145
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6146
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6147
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6148
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6149
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6150
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6151
                thisClass isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6152
                    classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6153
                        (classNameMap includesKey:parseTree receiver name) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6154
                            thisClass := Smalltalk classNamed:(classNameMap at:parseTree receiver name)
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6155
                        ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6156
                    ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6157
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6158
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6159
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6160
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6161
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6162
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6163
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6164
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6165
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6166
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6167
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6168
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6169
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  6170
                        oldSource := c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6171
                    ] ifTrue:[
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  6172
                        selector argumentCount == 0 ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6173
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6174
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6175
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6176
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6177
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6178
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6179
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6180
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6181
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6182
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6183
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6184
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6185
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6186
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6187
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6188
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6189
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6190
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6191
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  6192
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6193
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6194
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6195
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6196
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6197
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6198
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6199
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6200
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6201
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6202
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6203
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6204
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6205
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6206
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6207
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6208
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6209
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6210
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6211
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6212
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6213
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6214
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6215
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6216
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6217
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6218
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6219
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6220
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6221
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6222
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6223
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6224
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6225
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6226
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6227
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6228
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6229
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6230
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6231
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6232
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6233
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6234
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6235
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6236
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6237
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6238
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6239
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6240
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6241
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6242
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6243
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6244
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6245
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6246
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6247
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6248
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6249
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6250
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6251
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6252
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6253
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6254
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6255
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6256
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6257
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6258
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6259
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6260
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6261
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6262
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6263
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6264
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6265
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6266
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6267
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6268
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6269
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6270
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6271
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6272
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6273
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6274
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6275
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6276
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6277
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6278
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6279
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6280
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6281
    "Modified: / 01-05-2016 / 18:26:01 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6282
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6283
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6284
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6285
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6286
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6287
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6288
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6289
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6290
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6291
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6292
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6293
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6294
                          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
  6295
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6296
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6297
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6298
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6299
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6300
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6301
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6302
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6303
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6304
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6305
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6306
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6307
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6308
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6309
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6310
closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6311
    "window manager wants me to go away"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6312
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6313
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6314
    super closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6315
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6316
    "Modified (comment): / 28-05-2018 / 09:49:47 / Claus Gittinger"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6317
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6318
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6319
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6320
    "update the changes file and quit.
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6321
     Don't depend on this being sent, not all window managers
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6322
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  6323
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6324
    anyChanges ifTrue:[
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6325
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6326
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6327
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6328
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6329
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6330
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6331
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  6332
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6333
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6334
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6335
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6336
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6337
    searchString := self
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6338
        askForSearchString:msg
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6339
        initialAnswer:initial
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6340
        directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6341
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6342
    searchString isNil ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6343
        ^ cancelBlock value
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6344
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6345
    lastSearchString := searchString.
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6346
    
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6347
    directionHolder value == #first ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6348
        self findFirstForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6349
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6350
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6351
    directionHolder value == #last ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6352
        self findLastForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6353
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6354
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6355
    
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6356
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6357
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6358
    directionHolder value == #backward ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6359
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6360
            changeNrShown := self numberOfChanges.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6361
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6362
        self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6363
    ] ifFalse:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6364
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6365
            changeNrShown := 0.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6366
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6367
        self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6368
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6369
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6370
    "Modified: / 10-02-2017 / 20:40:59 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6371
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6372
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6373
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6374
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6375
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6376
    |searchString direction choices current|
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6377
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6378
    direction := #forward.
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6379
    choices := OrderedCollection new.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6380
    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6381
    changeNrShown notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6382
        current := self classNameOfChange:changeNrShown.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6383
        initial ~= current ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6384
            (choices includes:current) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6385
                choices addFirst:current   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6386
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6387
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6388
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6389
    lastSearchString notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6390
        initial ~= lastSearchString ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6391
            (choices includes:lastSearchString) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6392
                choices addFirst:lastSearchString   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6393
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6394
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6395
    ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6396
    
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6397
    "/ take a normal request box, but add an additional 'previous' button
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6398
    Dialog modifyingBoxWith:[:box |
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6399
        |nextButton prevButton firstButton lastButton|
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6400
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6401
        nextButton := box okButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6402
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6403
        firstButton := Button label:(resources string:'First').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6404
        firstButton action:[direction := #first. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6405
        box addButton:firstButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6406
        
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6407
        lastButton := Button label:(resources string:'Last').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6408
        lastButton action:[direction := #last. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6409
        box addButton:lastButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6410
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6411
        prevButton := Button label:(resources string:'Previous').
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6412
        prevButton action:[direction := #backward. box okPressed.].
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6413
        box addButton:prevButton after:nextButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6414
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6415
        nextButton label:(resources string:'Next').
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6416
    ] do:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6417
        searchString := Dialog
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6418
                request:msg
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6419
                list:choices 
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6420
                initialAnswer:initial
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6421
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6422
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6423
    searchString isEmptyOrNil ifTrue:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6424
        ^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6425
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6426
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6427
    ^ searchString
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6428
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6429
    "
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6430
     self new askForSearchString:'foo' initialAnswer:'bla' directionInto:(false asValue)
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6431
    "
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6432
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6433
    "Modified: / 12-02-2017 / 11:18:11 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6434
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6435
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6436
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6437
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6438
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6439
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6440
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6441
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6442
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6443
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6444
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6445
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6446
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6447
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6448
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6449
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6450
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6451
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6452
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6453
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6454
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6455
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6456
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6457
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6458
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6459
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6460
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6461
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6462
                lineNr := lineNrCollection first.
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
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6465
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6466
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6467
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6468
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6469
19512
3fe02dbbb6dc #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19395
diff changeset
  6470
    changeListSelectionHolder value:lineNumbers.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6471
    
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6472
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6473
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6474
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6475
        changeNrShown := nil.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6476
        infoHolder value:nil.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6477
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6478
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6479
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6480
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6481
    self sensor
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6482
        enqueueMessage:#updateSourceCodeAfterChangedSelection for:self arguments:nil;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6483
        enqueueMessage:#updateInfoAfterChangedSelection for:self arguments:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6484
^ self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6485
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6486
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6487
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6488
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6489
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6490
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  6491
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6492
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6493
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  6494
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6495
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6496
        |clsName cls|
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
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6499
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6500
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6501
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6502
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6503
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6504
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6505
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6506
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6507
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6508
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6509
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6510
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6511
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6512
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  6513
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6514
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6515
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6516
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6517
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6518
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6519
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6520
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6521
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6522
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6523
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6524
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6525
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6526
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6527
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6528
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6529
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6530
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6531
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6532
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6533
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6534
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6535
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6536
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6537
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6538
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6539
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6540
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6541
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6542
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6543
classOfChange:changeNr ifAbsent:exceptionBlock
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6544
    "answer the class that is subject to the change at changeNr.
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6545
     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
  6546
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6547
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6548
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6549
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6550
    className isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6551
        ^ exceptionBlock valueWithOptionalArgument:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6552
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6553
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6554
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6555
    (className endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  6556
        className := className copyButLast:6.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6557
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6558
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  6559
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6560
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6561
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6562
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6563
            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
  6564
                "/ 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
  6565
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6566
                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
  6567
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6568
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6569
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6570
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6571
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6572
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6573
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6574
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6575
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6576
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6577
        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
  6578
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6579
        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
  6580
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6581
    (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
  6582
        "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
  6583
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6584
            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
  6585
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6586
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6587
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6588
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6589
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6590
    cls isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6591
        ^ exceptionBlock valueWithOptionalArgument:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6592
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6593
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6594
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6595
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6596
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6597
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6598
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6599
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6600
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6601
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6602
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6603
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6604
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6605
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6606
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6607
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6608
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  6609
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6610
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6611
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6612
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6613
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6614
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6615
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6616
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6617
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6618
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6619
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6620
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6621
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6622
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6623
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6624
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6625
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6626
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6627
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6628
            lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6629
            self withWriteCursorDo:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6630
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6631
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6632
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6633
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6634
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6635
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6636
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6637
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6638
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6639
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6640
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6641
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6642
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6643
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  6644
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6645
    "Modified: / 27-07-2012 / 09:46:04 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6646
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6647
11477
95c469c33ab3 added: #selectionChanged
Stefan Vogel <sv@exept.de>
parents: 11476
diff changeset
  6648
selectionChanged
12946
e6e3c7681456 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12845
diff changeset
  6649
    self halt:'should not be here'
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6650
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6651
    "Created: / 03-01-2012 / 15:26:36 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6652
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6653
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6654
updateInfoAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6655
    "update the info label"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6656
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6657
    |selection lineNr selectorOrNil className nonMetaClassName metaClassName
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6658
     nClassChanges nMethodChanges uniqueSelectors
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6659
     lastLineNr firstLineNr 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6660
     countForClassBeforeCurrent countForClassAfterLast countForClassAndSelectorAfterLast 
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6661
     moreInfo countInfo selectorInfo|
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6662
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6663
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6664
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6665
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6666
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6667
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6668
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6669
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6670
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6671
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6672
        infoHolder value:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6673
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6674
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6675
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6676
    "/
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6677
    "/ now, this info is computed so fast,
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6678
    "/ we can do it each time the selection changes
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6679
    "/ (can we?)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6680
    className := self realClassNameOfChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6681
    className isNil ifTrue:[
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6682
        infoHolder value:nil.
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6683
        ^ self
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6684
    ].
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6685
    selectorOrNil := self selectorOfMethodChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6686
    
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6687
    nonMetaClassName := (className endsWith:' class')
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6688
                            ifTrue:[ className copyButLast:' class' size ]
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6689
                            ifFalse:[ className ].
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6690
    metaClassName := nonMetaClassName,' class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6691
                            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6692
    nClassChanges := nMethodChanges := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6693
    uniqueSelectors := Set new.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6694
    lastLineNr := firstLineNr := nil.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6695
    countForClassAfterLast := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6696
    countForClassBeforeCurrent := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6697
    countForClassAndSelectorAfterLast := 0.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6698
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6699
    "/ count them all
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6700
    1 to:changeInfoList size do:[:i |
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6701
        |sel nameOfChange|
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6702
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6703
        changeInfoList at:i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6704
        nameOfChange := self realClassNameOfChange:i.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6705
        ((nameOfChange = nonMetaClassName) or:[nameOfChange = metaClassName]) ifTrue:[
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6706
            sel := self selectorOfMethodChange:i.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6707
            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6708
            lastLineNr := i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6709
            firstLineNr := firstLineNr ? i.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6710
            i > lineNr ifTrue:[ 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6711
                countForClassAfterLast := countForClassAfterLast + 1.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6712
                (nameOfChange = className 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6713
                  and:[ selectorOrNil notNil 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6714
                  and:[sel == selectorOrNil]]) ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6715
                    countForClassAndSelectorAfterLast := countForClassAndSelectorAfterLast + 1.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6716
                ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6717
            ] ifFalse:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6718
                i < lineNr ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6719
                    countForClassBeforeCurrent := countForClassBeforeCurrent + 1
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6720
                ]
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6721
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6722
            nClassChanges := nClassChanges + 1.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6723
            sel notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6724
                uniqueSelectors add:sel.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6725
                nMethodChanges := nMethodChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6726
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6727
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6728
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6729
    lastLineNr == lineNr ifTrue:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6730
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6731
            moreInfo := resources string:'. This is the only one for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6732
        ] ifFalse:[    
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6733
            moreInfo := resources string:'. This is the last for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6734
        ]
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6735
    ] ifFalse:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6736
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6737
            moreInfo := resources string:'. This is the first for this class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6738
        ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6739
        countForClassAfterLast > 0 ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6740
            moreInfo := (moreInfo ? ''),(resources string:'. %1 more for this class' with:countForClassAfterLast).
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6741
            countForClassAndSelectorAfterLast > 0 ifTrue:[
17419
469331b680ed #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17400
diff changeset
  6742
                moreInfo := moreInfo,(resources string:', %1 for selector' with:countForClassAndSelectorAfterLast).
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6743
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6744
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6745
    ].
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6746
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6747
    countInfo := resources string:'%1 changes. %2 for %3 '
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6748
                        with:(changeInfoList size)
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6749
                        with:nClassChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6750
                        with:className.
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6751
                        
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6752
    uniqueSelectors size == 1 ifTrue:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6753
        nMethodChanges == 1 ifTrue:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6754
            selectorInfo := (resources string:'(1 for #''%1'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6755
                                      with:uniqueSelectors first) allBold
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6756
        ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6757
            selectorInfo := (resources string:'(%1 methods / for #''%2'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6758
                                      with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6759
                                      with:uniqueSelectors first) allBold
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6760
        ].
18110
d5c27e884602 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18061
diff changeset
  6761
    ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6762
        (nMethodChanges == 0 and:[uniqueSelectors isEmptyOrNil]) ifTrue:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6763
            selectorInfo := resources string:'(0 methods)' 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6764
        ] ifFalse:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6765
            selectorInfo := (resources string:'(%1 methods / %5 selectors)'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6766
                             with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6767
                             with:uniqueSelectors size) allBold 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6768
        ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6769
    ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6770
    infoHolder value:(countInfo,selectorInfo,moreInfo).
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6771
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6772
    "Modified: / 19-02-2017 / 13:37:19 / cg"
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6773
    "Modified: / 08-06-2018 / 12:09:44 / Claus Gittinger"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6774
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6775
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6776
updateSourceCodeAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6777
    "show a change in the codeView"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6778
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6779
    |selection lineNr chunk|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6780
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6781
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6782
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6783
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6784
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6785
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6786
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6787
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6788
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6789
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6790
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6791
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6792
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6793
    "/ display the changes code
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6794
    chunk := self sourceOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6795
    chunk isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6796
        codeView initializeDoITAction.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6797
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6798
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6799
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6800
    codeView contents:chunk.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6801
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6802
    codeView doItAction:[:theCode |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6803
        |clsName cls|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6804
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6805
        clsName := self classNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6806
        clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6807
            clsName := clsName asSymbolIfInterned.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6808
            clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6809
                cls := Smalltalk at:clsName ifAbsent:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6810
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6811
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6812
        Compiler
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6813
            evaluate:theCode
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6814
            in:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6815
            receiver:cls
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6816
            notifying:self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6817
            logged:true
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6818
            ifFail:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6819
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6820
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6821
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6822
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6823
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6824
    self showingDiffs value ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6825
        self withWaitCursorDo:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6826
            AbortOperationRequest catch:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6827
                self updateDiffViewFor:changeNrShown.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6828
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6829
        ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6830
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6831
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6832
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6833
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
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
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6836
    autoCompare := something.
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
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6839
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6840
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6841
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6842
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6843
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6844
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6845
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6846
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6847
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6848
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6849
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6850
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6851
changeChunks
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6852
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6853
    ^ changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6854
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6855
    "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
  6856
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6857
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6858
changeClassNames
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6859
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6860
    ^ changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6861
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6862
    "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
  6863
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6864
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6865
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6866
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6867
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6868
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6869
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6870
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6871
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6872
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6873
changeHeaderLines
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6874
    self breakPoint:#cg.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6875
   ^ changeHeaderLines
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6876
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6877
    "Modified: / 01-05-2016 / 19:10:41 / cg"
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
changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6881
    ^ changeInfo
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
    "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
  6884
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6885
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6886
changeIsFollowupMethodChange
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6887
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6888
    ^ changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6889
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6890
    "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
  6891
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6892
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6893
changePositions
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6894
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6895
    ^ changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6896
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6897
    "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
  6898
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6899
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6900
changeTimeStamps
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6901
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6902
    ^ changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6903
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6904
    "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
  6905
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6906
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6907
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6908
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6909
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6910
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6911
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6912
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6913
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6914
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6915
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6916
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6917
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6918
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6919
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6920
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6921
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6922
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6923
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6924
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6925
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6926
    "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
  6927
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6928
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6929
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6930
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6931
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6932
    "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
  6933
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6934
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6935
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6936
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6937
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6938
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6939
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6940
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6941
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6942
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6943
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6944
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6945
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6946
                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
  6947
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6948
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6949
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6950
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6951
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6952
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6953
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6954
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6955
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6956
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6957
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6958
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6959
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6960
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6961
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6962
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6963
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6964
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6965
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6966
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6967
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6968
    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
  6969
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6970
            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
  6971
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6972
            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
  6973
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6974
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6975
    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
  6976
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6977
            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
  6978
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6979
            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
  6980
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6981
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6982
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6983
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6984
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6985
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6986
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6987
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6988
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6989
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6990
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6991
    "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
  6992
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6993
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6994
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6995
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6996
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6997
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6998
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6999
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7000
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7001
    changeHeaderLines add:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7002
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7003
    "Modified: / 01-05-2016 / 19:07:49 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7004
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7005
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7006
colorizeAsCommentChange:changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7007
    |c|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7008
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7009
    NoColoring ~~ true ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7010
        c := changeType allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7011
        "/ changeString := changeString allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7012
        c emphasisAllAdd:(#color -> UserPreferences current commentColor).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7013
        ^ c
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7014
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7015
    ^ changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7016
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7017
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7018
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
  7019
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7020
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7021
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7022
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7023
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7024
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7025
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7026
    timeStampInfo notNil ifTrue:[
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  7027
        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
  7028
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7029
    ^ entry
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7030
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7031
    "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
  7032
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7033
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7034
processChunk
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7035
    |info|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7036
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7037
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7038
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7039
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7040
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7041
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7042
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7043
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7044
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7045
    changeInfo add:(info := 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7046
                        ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7047
                            position:chunkPosition chunk:chunkText className:nil selector:nil headerLine:nil
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7048
                            timestamp:timeStampInfo isFollowupChange:false).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7049
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7050
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7051
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7052
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7053
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7054
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7055
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7056
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7057
            [
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7058
                changeInfo removeLast.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7059
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7060
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7061
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7062
    changeString notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7063
        "/ self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7064
        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
  7065
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7066
        headerLine notNil ifTrue:[
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  7067
            changeHeaderLines add:headerLine.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7068
            info headerLine:headerLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7069
        ]
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7070
    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7071
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7072
    "Modified: / 01-05-2016 / 19:13:59 / cg"
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  7073
    "Modified: / 27-10-2017 / 14:34:51 / stefan"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7074
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7075
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7076
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7077
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7078
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7079
    |askedForEditingClassSource changeClass category anyMethod
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7080
     sel p rec clsName done first text methodPos
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7081
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo methodSelector nameAndClass
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7082
     info|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7083
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7084
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7085
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7086
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7087
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7088
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7089
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7090
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7091
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7092
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7093
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7094
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7095
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7096
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7097
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  7098
19567
1ce7a325376d #REFACTORING by alkurz
alkurz
parents: 19520
diff changeset
  7099
    (chunkText includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  7100
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  7101
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7102
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  7103
    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
  7104
    (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
  7105
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7106
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7107
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7108
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7109
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7110
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7111
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7112
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7113
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7114
                classCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7115
                changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7116
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7117
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7118
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7119
                    methodCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7120
                    changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7121
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7122
                ] ifFalse:[
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  7123
                    (sel argumentCount == 0) ifTrue:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7124
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7125
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7126
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7127
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7128
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7129
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7130
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7131
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7132
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7133
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7134
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7135
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7136
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7137
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7138
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7139
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7140
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7141
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7142
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7143
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7144
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7145
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7146
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7147
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7148
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7149
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7150
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7151
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7152
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7153
        changeDelta := ' '.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7154
        methodPos := inStream position + 1.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7155
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7156
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7157
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7158
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7159
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7160
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7161
            first ifFalse:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7162
                info := ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7163
                            position:methodPos chunk:chunkText className:clsName 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7164
                            selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7165
                changeInfo add:info.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7166
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7167
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7168
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7169
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7170
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7171
            ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7172
                changeInfo last className:clsName
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7173
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7174
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7175
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7176
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7177
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  7178
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7179
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7180
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7181
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7182
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7183
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7184
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7185
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7186
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7187
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7188
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7189
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7190
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7191
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7192
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7193
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7194
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7195
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7196
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7197
                    methodChunks ifTrue:[
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7198
                        p := Parser for:(ReadStream on:text) in:nil.  
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7199
                        p ignoreErrors:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7200
                        p ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7201
                        p parserFlags allowDollarInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7202
                        p parserFlags allowParagraphInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7203
                        p parseMethodSpec.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7204
                        methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7205
"/                        p := Parser
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7206
"/                                 parseMethodSpecification:text
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7207
"/                                 in:nil
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7208
"/                                 ignoreErrors:true
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7209
"/                                 ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7210
"/                        (p notNil and:[p ~~ #Error]) ifTrue:[
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7211
"/                            methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7212
"/                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7213
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7214
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7215
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7216
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7217
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7218
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7219
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7220
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7221
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7222
                    changeType := ('{ ' , category , ' }').
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7223
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7224
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7225
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7226
                autoCompare value ifTrue:[
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7227
                    changeDelta := ChangeDeltaInformation 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7228
                                        changeDeltaFor:text changeClass:changeClass selector:methodSelector.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7229
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7230
            ].
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7231
            changeInfo last 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7232
                headerLine:(self headerLineForChangeType:changeType 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7233
                                 changeString:changeString
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7234
                                 changeDelta:changeDelta
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7235
                                 timeStampInfo:timeStampInfo).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7236
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7237
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7238
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7239
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7240
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7241
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7242
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7243
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7244
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7245
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7246
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7247
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7248
    "Modified: / 21-11-2016 / 23:32:29 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7249
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7250
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7251
processNonMethodChunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7252
    |s changeClass sel cls parseTree rec clsName ownerTree ownerName
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7253
     m nameAndClass args instVarsArg classVarsArg categoryArg
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7254
     lastInfo newCategory newPackage|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7255
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7256
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7257
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7258
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7259
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7260
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7261
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7262
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7263
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7264
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7265
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7266
     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
  7267
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7268
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7269
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7270
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7271
        timeStampInfo := nil.
19066
7a4a65d22b3e #OTHER by exept
Claus Gittinger <cg@exept.de>
parents: 19039
diff changeset
  7272
        changeString := changeString allGray.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7273
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7274
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7275
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7276
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7277
    parseTree := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7278
    (parseTree notNil and:[parseTree ~~ #Error]) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7279
        parseTree isMessage ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7280
            sel := parseTree selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7281
            rec := parseTree receiver.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7282
            args := parseTree args.        
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7283
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7284
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7285
        sel := nil.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7286
        Error handle:[:ex |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7287
            changeType := '(???)'.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7288
        ] do:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7289
            (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7290
                "/ a comment only
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7291
                changeType := self colorizeAsCommentChange:'(comment)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7292
            ] ifFalse:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7293
                changeType := '(???)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7294
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7295
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7296
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7297
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7298
    (sel == #comment:) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7299
        changeType := self colorizeAsCommentChange:'(comment)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7300
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7301
        changeClass := (self nameSpaceForApply) classNamed:clsName.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7302
        (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7303
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7304
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7305
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7306
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7307
            ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7308
                (changeClass comment = (args at:1) evaluate) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7309
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7310
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7311
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7312
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7313
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7314
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7315
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7316
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7317
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7318
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7319
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7320
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7321
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7322
        sel := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7323
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7324
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7325
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7326
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7327
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7328
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7329
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7330
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7331
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7332
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7333
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7334
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7335
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7336
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7337
        changeString := self contractClass:clsName selector:sel to:maxLen.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7338
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7339
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7340
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7341
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7342
    (parseTree notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7343
    and:[parseTree ~~ #Error
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7344
    and:[parseTree isMessage
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7345
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7346
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7347
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7348
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7349
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7350
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7351
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7352
            sel := (rec args at:1) evaluate.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7353
            changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7354
            changeString := self contractClass:clsName selector:sel to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7355
            newCategory := (args at:1) evaluate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7356
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7357
            "/ make it a category change
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7358
            lastInfo := changeInfo last.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7359
            lastInfo className:clsName.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7360
            lastInfo selector:sel.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7361
            lastInfo categoryIfCategoryChange:newCategory.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7362
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7363
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7364
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7365
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7366
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7367
                    m := changeClass compiledMethodAt:sel asSymbol.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7368
                    m isNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7369
                        "/ mhm - the method does not (no longer=) exist
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7370
                        changeDelta := '?'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7371
                    ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7372
                        m category = newCategory ifTrue:[
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7373
                            changeDelta := '='.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7374
                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7375
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7376
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7377
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7378
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7379
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7380
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7381
        (sel == #package:) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7382
            sel := (rec args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7383
            changeType := self colorizeAsCommentChange:'(package change)'.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7384
            changeString := self contractClass:clsName selector:sel to:maxLen.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7385
            newPackage := (args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7386
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7387
            "/ make it a category change
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7388
            lastInfo := changeInfo last.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7389
            lastInfo className:clsName.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7390
            lastInfo selector:sel.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7391
            "/ lastInfo packageIfPackageChange:newPackage.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7392
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7393
            autoCompare value ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7394
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7395
                    changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7396
                ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7397
                    m := changeClass compiledMethodAt:sel asSymbol.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7398
                    m isNil ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7399
                        "/ mhm - the method does not (no longer=) exist
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7400
                        changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7401
                    ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7402
                        m package = newPackage ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7403
                            changeDelta := '='.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7404
                        ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7405
                    ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7406
                ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7407
            ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7408
            ^ self.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7409
        ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7410
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7411
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7412
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7413
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7414
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7415
            (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7416
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7417
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7418
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7419
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7420
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7421
                    changeDelta := ' '
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7422
                ]
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7423
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7424
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7425
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7426
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7427
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7428
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7429
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7430
        changeType := '(class definition)'.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7431
        clsName := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7432
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7433
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7434
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7435
        ('*privateIn:' match:sel) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7436
            ownerTree := args last.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7437
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7438
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7439
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7440
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7441
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7442
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7443
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7444
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7445
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7446
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7447
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7448
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7449
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7450
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7451
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7452
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7453
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7454
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7455
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7456
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7457
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7458
                    ((cls superclass isNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7459
                        and:[rec isLiteral
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7460
                        and:[rec evaluate isNil]])
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7461
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7462
                        cls superclass notNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7463
                        and:[rec isLiteral not
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7464
                        and:[cls superclass name = rec name]]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7465
                    ]) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7466
                        (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7467
                        ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7468
                            "/ VSE definition message
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7469
                            instVarsArg := ''.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7470
                            classVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7471
                            categoryArg := (args at:4) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7472
                        ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7473
                            instVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7474
                            classVarsArg := (args at:3) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7475
                            categoryArg := (args at:5) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7476
                        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7477
                        cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7478
                            cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7479
                                cls definitionSelector = (sel , 'category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7480
                                ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7481
                                    "/ ST/V, VAge or Dolphin definition
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7482
                                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7483
                                ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7484
                                    cls category = categoryArg ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7485
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7486
                                    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7487
                                        changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7488
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7489
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7490
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7491
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7492
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7493
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7494
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7495
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7496
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7497
        ^ self.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7498
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7499
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7500
    (#(
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7501
      #'primitiveDefinitions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7502
      #'primitiveFunctions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7503
      #'primitiveVariables:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7504
     ) includes:sel) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7505
        changeType := '(class definition)'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7506
        clsName := rec name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7507
        ^ self.    
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7508
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7509
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7510
    ((sel == #instanceVariableNames:)
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7511
    and:[rec isMessage
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7512
    and:[rec selector == #class]]) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7513
        clsName := rec receiver name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7514
        changeClass := (self nameSpaceForApply) classNamed:clsName.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7515
        changeType := '(class definition)'.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7516
        (changeInfo last) className:clsName.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7517
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7518
        autoCompare value ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7519
            changeClass isNil ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7520
                changeDelta := '?'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7521
            ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7522
                s := (args at:1) evaluate.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7523
                s = changeClass class instanceVariableString ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7524
                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7525
                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7526
            ]
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7527
        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7528
        ^ self.    
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7529
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  7530
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7531
    "Modified: / 01-05-2016 / 19:19:54 / cg"
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7532
    "Modified: / 24-10-2018 / 13:01:41 / Claus Gittinger"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7533
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7534
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7535
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7536
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7537
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7538
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7539
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7540
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7541
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7542
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7543
    "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
  7544
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7545
     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
  7546
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7547
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7548
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7549
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7550
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7551
                '=' -> 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
  7552
                '~' -> 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
  7553
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7554
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7555
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7556
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7557
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7558
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7559
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7560
     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
  7561
     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
  7562
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7563
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7564
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7565
    changeInfo := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7566
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7567
"/    changeChunks := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7568
"/    changeClassNames := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7569
"/    changeHeaderLines := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7570
"/    changePositions := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7571
"/    changeTimeStamps := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7572
"/    changeIsFollowupMethodChange := OrderedCollection new.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7573
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7574
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7575
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7576
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7577
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7578
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7579
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7580
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7581
        inStream skipSeparators.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7582
        chunkPosition := inStream position + 1.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7583
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7584
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7585
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  7586
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7587
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7588
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7589
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7590
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7591
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7592
    "Modified: / 01-05-2016 / 18:33:36 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7593
! !
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7594
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7595
!ChangesBrowser::ChangeInfo class methodsFor:'documentation'!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7596
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7597
documentation
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7598
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7599
    documentation to be added.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7600
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7601
    [author:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7602
        cg
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7603
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7604
    [instance variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7605
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7606
    [class variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7607
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7608
    [see also:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7609
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7610
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7611
! !
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7612
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7613
!ChangesBrowser::ChangeInfo methodsFor:'accessing'!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7614
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7615
categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7616
    ^ categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7617
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7618
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7619
categoryIfCategoryChange:something
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7620
    categoryIfCategoryChange := something.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7621
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7622
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7623
chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7624
    ^ chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7625
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7626
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7627
className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7628
    ^ className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7629
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7630
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7631
className:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7632
    className := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7633
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7634
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7635
headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7636
    ^ headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7637
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7638
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7639
headerLine:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7640
    headerLine := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7641
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7642
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7643
isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7644
    ^ isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7645
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7646
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7647
isMethodCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7648
    ^ categoryIfCategoryChange notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7649
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7650
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7651
position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7652
    ^ position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7653
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7654
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7655
position:positionArg chunk:chunkArg className:classNameArg selector:selectorArg headerLine:headerLineArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7656
    timestamp:timestampArg isFollowupChange:isFollowupChangeArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7657
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7658
    position := positionArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7659
    chunk := chunkArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7660
    className := classNameArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7661
    selector := selectorArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7662
    headerLine := headerLineArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7663
    timestamp := timestampArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7664
    isFollowupChange := isFollowupChangeArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7665
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7666
    "Created: / 01-05-2016 / 19:01:03 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7667
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7668
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7669
selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7670
    ^ selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7671
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7672
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7673
selector:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7674
    selector := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7675
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7676
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7677
timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7678
    ^ timestamp
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7679
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7680
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  7681
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7682
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7683
version
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7684
    ^ '$Header$'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7685
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7686
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7687
version_CVS
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7688
    ^ '$Header$'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  7689
! !
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  7690